Mybatis-语法笔记
返回主键
1.XML方式
<insert id="bb" parameterType="XX.XX.XXEntity包" useGeneratedKeys="true" keyProperty="id">这里是insert语句
</insert>
2.注解方式,要在接口方法上加两个注解,一个是insert,一个是selectKey
@Insert("这里是insert语句")
@SelectKey(statement = "SELECT last_insert_id() as id", keyProperty = "id", before = false, resultType = String.class, statementType = StatementType.STATEMENT)
//entity里要有id这个属性并且有getset方法,上面的resultType要注意,你的entity里的id是什么属性,就写什么,我的id是String,所以我写String.class,如果你的是int,那么请写Integer.class
public int insert(实体类 entity);
循环
本文展示了这样一个业务:根据多个ID删除多条数据
public Integer 方法名AA(@Param("bb") String[] ids);
1.Mybatis接口方式,接口方式的循环通常很好些,因为@param可以指定名字
<delete id="方法名AA" resultMap="如果是查询记得写返回值类型">delete from 表 where id in//如果是批量插入记得删掉open和close属性<foreach collection="bb" item="item" index="index" open="("separator="," close=")">#{item}</foreach>
</delete>
2.Mybatis映射方式,如果使用映射方式,bb如果不放到map中,那么mybatis会把他的名字变成list,所以如下写,不再用item属性了
<delete id="方法名AA" resultMap="如果是查询记得写返回值类型">delete from 表 where id in//如果是批量插入记得删掉open和close属性<foreach collection="list" index="index" item="aaa" open="("separator="," close=")">#{list[${index}]}</foreach>
</delete>
注: 当mybatis以映射方式循环的时候,你们会发现循环语句中有个item=“aaa”,虽然我下面没有用到这个,但是item必须写,哪怕是item=“bbb”,item=“ccc”,必须要写,否则mybatis报错
加前缀后缀覆盖
下面的例子展示了如果传递用户名称,则将用户名称userName和年龄userAge作为条件进行或查询,但是由于前面有一个逻辑删除表示is_deleted = 0
,这导致如果不进行特殊处理,后面name+age无法在一个括号里,但是如果在一个括号里(所以使用prefix+suffix
),并且name前面的OR要消失,所以使用prefixOverrides
select * from 表
where
is_deleted = 0
<trim prefix="(" suffix=")" prefixOverrides="OR"><if test="userName=null and userName!=''">OR t1.`name` = #{userName}</if><if test="userAge=null and userAge!=''">OR t1.`age` = #{userAge}</if>
</trim>
Mybatis-语法笔记相关推荐
- mybatis学习笔记--常见的错误
原文来自:<mybatis学习笔记--常见的错误> 昨天刚学了下mybatis,用的是3.2.2的版本,在使用过程中遇到了些小问题,现总结如下,会不断更新. 1.没有在configurat ...
- Mybatis学习笔记【part03】增删改查
Mybatis 学习笔记 Part03 1.传入参数与返回参数设置(查) <!-- 根据 id 查询 --> <select id="findById" resu ...
- mybatis学习笔记(13)-延迟加载
2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(13)-延迟加载 标签: mybatis [TOC] resultMap可以实现高级映射(使用asso ...
- mybatis学习笔记(7)-输出映射
2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(7)-输出映射 标签: mybatis [TOC] 本文主要讲解mybatis的输出映射. 输出映射有 ...
- Python爬虫:Xpath语法笔记
Python爬虫:Xpath语法笔记 一.选取节点 常用的路劲表达式: 表达式 描述 实例 nodename 选取nodename节点的所有子节点 xpath('//div') 选取了div节点的 ...
- mybatis学习笔记(3)-入门程序一
2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(3)-入门程序一 标签: mybatis [TOC] 工程结构 在IDEA中新建了一个普通的java项 ...
- MyBatis多参数传递之Map方式示例——MyBatis学习笔记之十三
前面的文章介绍了MyBatis多参数传递的注解.参数默认命名等方式,今天介绍Map的方式.仍然以前面的分页查询教师信息的方法findTeacherByPage为例(示例源代码下载地址:http://d ...
- ant的下载与安装——mybatis学习笔记之预备篇(一)
看到这个标题是不是觉得有点奇怪呢--不是说mybatis学习笔记吗,怎么扯到ant了?先别急,请容我慢慢道来. mybatis是另外一个优秀的ORM框架.考虑到以后可能会用到它,遂决定提前学习,以备不 ...
- SpringBoot集成Mybatis用法笔记
今天给大家整理SpringBoot集成Mybatis用法笔记.希望对大家能有所帮助! 搭建一个SpringBoot基础项目. 具体可以参考SpringBoot:搭建第一个Web程序 引入相关依赖 &l ...
- mybatis学习笔记(1)-对原生jdbc程序中的问题总结
2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(1)-对原生jdbc程序中的问题总结 标签:mybatis [TOC] 本文总结jdbc编程的一般步骤 ...
最新文章
- 作为程序员,这些梗你都答得上来吗?
- 万万没想到,枯燥的“机器学习”还可以这样学!
- networkx 中心势计算_科学网—复杂网络分析库NetworkX学习笔记(2):统计指标计算 - 闫小勇的博文...
- Linq中常用的方法
- 10000以内的素数。
- vue.js实现自定义输入分页
- 如何做软件需求分析(个人工作经验总结)
- 系统可用性量表评估问卷
- VARCHART XGantt 甘特图中的日期和夏令时
- 定位误差的计算机械制造,机械制造技术基础定位误差分析和计算.pdf
- Python学习笔记之小派读诗
- 【Chrome】从Google官网下载 Google Chrome 离线安装包
- 小程序列表多个批量倒计时
- wkt 画圆_PS怎么画很多小圆呈圆形排列
- 很实用的应用,推荐一下http://static.apk.hiapk.com/html/2012/06/625213.html?module=256info=MQA2ADMA
- matlab中拉式域转时间域,Bark域介绍和线性频率域转换到Bark域
- Java单例模式详解--七种单例模式实现+单例安全+实际应用场景
- 涨停板打开是不是下跌信号?
- 怎样学习Linux运维云计算,linux运维云计算课程学习,Linux云计算面试时遇到的问题...
- CSS制作鼠标移上去,三角形(箭头)旋转