MyBatis-Plus基础--自定义SQL操作(四)

时间:2024-10-12 16:56:52

注意点:在使用自定义SQL的同时也想使用Wrapper需要 mybatis-plus 版本需要大于或等于3.0.7 !!!!

注解方式

1,Mapper接口

  1. /**
  2. * 获取自定义SQL 简化自定义XML复杂情况
  3. * <p>使用方法</p>
  4. * <p>`自定义sql` + ${}</p>
  5. * <p>1.逻辑删除需要自己拼接条件 (之前自定义也同样)</p>
  6. * <p>2.不支持wrapper中附带实体的情况 (wrapper自带实体会更麻烦)</p>
  7. * <p>3.用法 ${} (不需要where标签包裹,切记!)</p>
  8. * <p>是wrapper定义别名,可自行替换</p>
  9. */
  10. public interface UserMapper extends BaseMapper<User> {
  11. // 自定义SQL:按输入条件查询数据库中数据
  12. @Select("select * from user ${}")
  13. List<User> selectUsers(@Param() Wrapper<User> queryWrapper);
  14. // 自定义SQL:查询数据库中所有的数据
  15. @Select("select * from user")
  16. List<User> selectAllUsers();
  17. }

 

2,测试方法

  1. @Test
  2. public void my_selectAllUsers() {
  3. // List<User> list = ();
  4. List<User> list = (new QueryWrapper<User>().eq("name", "zsf"));
  5. (list);
  6. }

 

配置文件方式

1,配置文件

  1. #配置文件的位置
  2. mybatis-plus:
  3. mapper-locations:
  4. - com/example/mapper/*

 

2,

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-////DTD Mapper 3.0//EN" "/dtd/">
  3. <mapper namespace="">
  4. <select id="selectUsers" resultType="">
  5. select * from user ${}
  6. </select>
  7. </mapper>

 

3,Mapper接口继承BaseMapper

  1. public interface UserMapper extends BaseMapper<User> {
  2. List<User> selectUsers(@Param() Wrapper<User> queryWrapper);
  3. }

 

4,测试方法

  1. @Test
  2. public void my_selectAllUsers() {
  3. // List<User> list = ();
  4. List<User> list = (new QueryWrapper<User>().eq("name", "zsf"));
  5. (list);
  6. }

 


5,自定义update

  1. @Update("update student set ${} ${}")
  2. void upateStu(@Param()UpdateWrapper<Student> ew);

 

  1. @Test
  2. public void upateStu() {
  3. (new UpdateWrapper<Student>().set("sname", "xxxxx").eq("id", 1));
  4. }

 


普通add

  1. <insert id="addstu" parameterType="">
  2. insert into student(snum, sname, sage, ssex, sclass) values(#{snum},#{sname},#{sage},#{ssex},#{sclass})
  3. </insert>

delete

  1. <delete id="delstu" parameterType="">
  2. delete from student where id=#{id}
  3. </delete>

.