6、MyBatis的几种特殊操作
6.1、模糊查询
接口函数:
List<User> selectUserBlur(@Param("username") String username);
对应的映射文件:(注意这里获取参数用${},如果用#{}则会产生多余的''
,从而出错。)
<!-- List<User> selectUserBlur();-->
<select id="selectUserBlur" resultType="User">
select * from t_user where name like '%${username}%'
</select>
查询语句:
List<User> users = userMapper.selectUserBlur("李");
运行结果:
6.2、批量删除
接口函数:
Integer deleteMore(@Param("id") String id);
对应的映射文件:(注意这里获取参数用${})
<!-- Integer deleteMore(@Param("id") Integer id);-->
<delete id="deleteMore" >
delete from t_user where id in (${id})
</delete>
删除语句:
Integer result = userMapper.deleteMore("11,12,13");
运行结果:
6.3、获取自动增加的主键
先说应用场景:
也就是说,班级建立的同时,要获取id(因为id不是自己输入的,所以事先未知),然后在分配学生(将班级id插入对应的学生记录中)。
接口函数:
void insertUserGetId(User user);
对应的映射文件:
<!-- void insertUserGetId(User user);-->
<insert id="insertUserGetId" useGeneratedKeys="true" keyProperty="id">
insert into t_user (id, name, sex, email, address)
values (null, #{name}, #{sex}, #{email}, #{address})
</insert>
useGeneratedKeys=“true” 打开获取主键功能
keyProperty=“id” 将获取到的主键赋值给id
新增语句:
User user = new User(null, "辛弃疾", "男", "12345678@qq.com", "南宋");
System.out.println("添加前--->"+user);
userMapper.insertUserGetId(user);
System.out.println("添加后--->"+user);
运行结果: