• MyBatis-plus框架使用


    目录

    Mybatis-plus简介

    配置文件

    启动类

    Mybatis-plus使用语法

    插入操作

    删除操作

    根据id删除

    根据字段删除

    根据对象删除

    更新操作

    根据id更新

    根据条件更新

    查询操作

    根据id查询

    批量id查询

    根据条件查询多个结果

    根据条件查询单个结果

    Mybatis-plus简介

    Mybatis-plus可以说是Mybatis的增强版,增强有以下几点:

    1、相比较于Mybatis可以生成service,serviceImpl,controller层的代码,减少代码工作量。

    2、service层实现了通用的CURD(增删改查功能),减少了用户人员的代码量,避免了大量的重复代码。

    依赖环境集成

    注意事项:

    1.mybatis-plus和mybatis-plus-generator版本必须一致 。

    2.mybatis-plus 和 springboot 的版本最好对应,可以上https://mvnrepository.com/搜索mybatis-plus-boot-starter,然后点击对应的版本,查看对应的springboot版本。

    导入依赖:

    1. <dependency>
    2. <groupId>com.baomidougroupId>
    3. <artifactId>mybatis-plus-generatorartifactId>
    4. <version>3.2.0version>
    5. dependency>
    6. <dependency>
    7. <groupId>com.baomidougroupId>
    8. <artifactId>mybatis-plus-boot-starterartifactId>
    9. <version>3.2.0version>
    10. dependency>
    11. <dependency>
    12. <groupId>org.projectlombokgroupId>
    13. <artifactId>lombokartifactId>
    14. <version>1.18.8version>
    15. dependency>

    配置文件

    1. mybatis-plus:
    2. mapper-locations:
    3. # xml文件的路径
    4. - classpath*:mapper/*.xml
    5. # 实体类的包路径
    6. type-aliases-package: com.cw.bean

    启动类

    @MapperScan({"mapper接口所在的包名"}),可以多个。

    Mybatis-plus使用语法

    插入操作

    1. @RunWith(SpringRunner.class)
    2. @SpringBootTest
    3. public class TestUserMapper {
    4. @Autowired
    5. private UserMapper userMapper;
    6. @Test
    7. public void testInsert(){
    8. User user=new User();
    9. user.setAge(12);
    10. user.setName("曹操");
    11. user.setPassword("123");
    12. user.setMail("caocao@qq.com");
    13. user.setUserName("曹操");
    14. user.setAddress("北京");
    15. //result数据库受影响的行数
    16. int result = userMapper.insert(user);
    17. System.out.println("result=>"+result);
    18. //获取自增长后的id值
    19. System.out.println(user.getId());//自增后的id会回填到对象中
    20. }
    21. }

    删除操作

    根据id删除

    1. @Test
    2. public void testDeleteById() {
    3. //执行删除操作
    4. int result = this.userMapper.deleteById(6L);
    5. System.out.println("result = " + result);
    6. }

    根据字段删除

    1. @Test
    2. public void testDeleteByMap() {
    3. Map columnMap = new HashMap<>();
    4. columnMap.put("age",20); columnMap.put("name","张三");
    5. //将columnMap中的元素设置为删除的条件,多个之间为and关系
    6. int result = this.userMapper.deleteByMap(columnMap);
    7. System.out.println("result = " + result);
    8. }

    根据对象删除

    1. @Test public void testDeleteByMap() {
    2. User user = new User();
    3. user.setAge(20);
    4. user.setName("张三");
    5. //将实体对象进行包装,包装为操作条件
    6. QueryWrapper wrapper = new QueryWrapper<>(user);
    7. int result = this.userMapper.delete(wrapper);
    8. System.out.println("result = " + result);
    9. }

    更新操作

    根据id更新

    1. @RunWith(SpringRunner.class)
    2. @SpringBootTest
    3. public class UserMapperTest {
    4. @Autowired private UserMapper userMapper;
    5. @Test
    6. public void testUpdateById() {
    7. User user = new User(); user.setId(6L); //主键
    8. user.setAge(21); //更新的字段
    9. //根据id更新,更新不为null的字段
    10. this.userMapper.updateById(user);
    11. }
    12. }

    根据条件更新

    1. @Test public void testUpdate() {
    2. User user = new User(); user.setAge(22); //更新的字段
    3. //更新的条件
    4. QueryWrapper wrapper = new QueryWrapper<>();
    5. wrapper.eq("id", 6);
    6. //执行更新操作
    7. int result = this.userMapper.update(user, wrapper);
    8. System.out.println("result = " + result);
    9. }

    查询操作

    根据id查询

    1. @Test
    2. public void testSelectById() {
    3. //根据id查询数据
    4. User user = this.userService.getById(2L);
    5. System.out.println("result = " + user);
    6. }

    批量id查询

    1. @Test
    2. public void testSelectBatchIds() {
    3. //根据id集合批量查询
    4. List users = this.userService.listByIds(Arrays.asList(2L, 3L, 10L));
    5. for (User user : users) {
    6. System.out.println(user);
    7. }
    8. }

    根据条件查询多个结果

    1. @Test public void testList() {
    2. QueryWrapper wrapper = new QueryWrapper();
    3. wrapper.eq("name", "李四");
    4. List user = this.userMapper.list(wrapper);
    5. }

    根据条件查询单个结果

    1. @Test public void testSelectOne() {
    2. QueryWrapper wrapper = new QueryWrapper();
    3. wrapper.eq("name", "李四");
    4. User user = this.userService.getOne(wrapper);
    5. }

  • 相关阅读:
    基于DMS的数仓智能运维服务,知多少?
    SpringBoot 文件操作 整合思路
    vue使用el-date-picker(选择日期和时间)
    19、商品微服务-srv层实现
    HOperatorSet.Connection 有内存泄漏或缓存
    耗时6个月,我们做了一款干净、免费、开源的AI数据库管理工具
    ES6 - 剩余参数,Array的扩展方法,String的扩展方法
    Server - 使用 文件锁 解决 Kubernetes 多机批量运行程序 (Python)
    pdf文件损坏打不开了怎么办
    nginx配置获取客户端的真实ip
  • 原文地址:https://blog.csdn.net/m0_55868614/article/details/126588641