Mybatis操作使用
Mybatis-XML的sql操作
1、<if test="name!=null and name!=''"></if>
2、模糊查询: LIKE CONCAT('%',#{name},'%')
3、返回null->设置0:coalesce(e.cuscount,0) as cuscount
4、批量操作:用于insert、update居多,sql的in操作也常见
xxx可以是集合list也可以是数组array,参数item有对象直接 #{item.name}
<foreach collection="xxx" item="item" index="index" open="(" close=")" separator=","> #{item}</foreach>
5、在不跳mybatis-push构造器火坑前,XML新增、更新常用判空拼接
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=VARCHAR},
</if>
</trim>
6、mapper入参xml的两种方式接收
#{}:表示一个占位符, 经过预编译,这种是取值以后再去编译SQL语句
${} :拼接SQL字符串(常用表名),未经过预编译,直接提取变量编译sql语句-简单说就是会有sql注入风险
7、navicat客户端操作
- ctrl+r 执行选中sql
- ctrl+d 数据表查询设计表定义
- ctrl+q 打开查询窗口
8、 sql查询返回map使用
List <Map <String, String>> list = userMapper.selectTest();
9、锁表
排它锁(Exclusive Locks,即X锁)和共享锁(Share Locks,即S锁)
update,delete,insert都会自动给涉及到的数据加上排他锁
浙公网安备 33010602011771号