Springboot整合Mybatis-Plus

1.引入依赖

        在工程的pom文件中添加如下代码,加载Mybatis-Plus、mysql的依赖项

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.2</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.33</version>
</dependency>

2.编写配置文件

        在application.properties配置文件里面配置mysql的连接信息

#配置mysql数据库
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/kslobn?userUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=root

        在spring boot启动类中添加@MapperScan注解,扫描Mapper文件夹:

3.编写实体类

在Mapper包里面创建接口AdminMapper并实现BaseMapper。

在此我们的CRUD功能已经全部实现,不用像以前那样编写麻烦的mybatis的映射文件。

4.测试

我们先引入mybatis的日志,方便我们查看CRUD的效果。在application文件里面加入以下代码。

mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

在springbootTest里面编写测试代码:

@SpringBootTest
class KslobnApplicationTests {
    @Autowired
    AdminMapper adminMapper;
    @Test
    void contextLoads() {
       Admin a=new Admin();
       a.setAdmin_id(111);
       a.setAdminname("mkbk");
       a.setAdminpwd("123");
       int insert=adminMapper.insert(a);
        System.out.println(insert);
    }

}

 结果如下:可见我们插入成功了。

更新操作

       //更新操作
        Admin admin=new Admin();
        admin.setAdmin_id(111);
        admin.setAdminpwd("mkbk");
        admin.setAdminpwd("111");
        int update=adminMapper.updateById(admin);
        System.out.println(update);

需要注意的是如果你的主键名字不是id的话可能会报:BindingException: Invalid bound statement (not found): com.lobn.kslobn.mapper.AdminMapper.updateById

原因是mybatis-plus默认的主键名字是id,解决办法,在你的实体类里面声明主键。

查询操作:

单个查询:

 //单个查询
        Admin admin;
        admin=adminMapper.selectById(111);
        System.out.println(admin);

多个查询:

  //查询多个
        ArrayList<Admin> adminList=new ArrayList<Admin>();
        adminList= (ArrayList<Admin>) adminMapper.selectBatchIds(Arrays.asList(111,11106,11104));
        for (Admin a:adminList) {
            System.out.println(a);
        }

条件查询:

//条件查询
        HashMap<String ,Object> hashMap=new HashMap<>();
        hashMap.put("adminname","mkbk");
        hashMap.put("adminpwd","111");
        ArrayList<Admin> adminArrayList= (ArrayList<Admin>) adminMapper.selectByMap(hashMap);
        for(Admin admin:adminArrayList)
        {
            System.out.println(admin);
        }

5.分页查询

如何使用MyBatisPlus内页插件?

 //分页查询
        Page<Admin> page=new Page<>(1,4);
        adminMapper.selectPage(page,null);
        for (Admin a:page.getRecords()
             ) {
            System.out.println(a);
        }
        //page的其他方法
        System.out.println("当前页:" + page.getCurrent());
        System.out.println("总页数:" + page.getPages());
        System.out.println("记录数:" + page.getTotal());
        System.out.println("是否有上一页:" + page.hasPrevious());
        System.out.println("是否有下一页:" + page.hasNext());

6.条件构造器

    Wrapper,可以构造复杂SQL。

测试:查询admin_id不为空的记录

 //复杂sql查询
        QueryWrapper<Admin> adminQueryWrapper=new QueryWrapper<>();
        adminQueryWrapper.isNotNull("admin_id");
        ArrayList<Admin> adminArrayList= (ArrayList<Admin>) adminMapper.selectList(adminQueryWrapper);
        for (Admin a:adminArrayList
             ) {
            System.out.println(a);

        }

  1. 条件查询

    • eq:等于条件。
    • ne:不等于条件。
    • gt:大于条件。
    • ge:大于等于条件。
    • lt:小于条件。
    • le:小于等于条件。
    • between:在两个值之间。
    • notBetween:不在两个值之间。
    • like:模糊查询。
    • notLike:不匹配模糊查询。
    • likeLeft:左模糊查询。
    • likeRight:右模糊查询。
  2. 逻辑查询

    • or:或者条件。
    • and:并且条件。
    • nested:嵌套条件。
  3. 排序

    • orderByAsc:根据指定字段升序排序。
    • orderByDesc:根据指定字段降序排序。
  4. 分组和聚合

    • groupBy:分组。
    • having:分组后的条件。
    • select:选择字段,可以用于聚合函数,如 countsumavgmaxmin
  5. 连表查询

    • leftJoin:左连接。
    • rightJoin:右连接。
    • innerJoin:内连接。
  6. 自定义 SQL

    • apply:用于拼接自定义 SQL 语句。
  7. 分页

    • last: limit 语句,用于分页。
  8. 实体类条件查询

    • allEq:基于实体类字段的等值条件。
  9. 条件组合

    • or:或者条件。
    • and:并且条件。
    • nested:嵌套条件。
  10. 批量操作

    • in:在某个集合中。
    • notIn:不在某个集合中。
  11. 其他操作

    • exists:存在。
    • notExists:不存在。
    • isNull:字段为空。
    • isNotNull:字段不为空。
  • 20
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

染翰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值