入门案例
SpringBoot整合MyBatisPlus入门程序
①:创建新模块,选择Spring初始化,并配置模块相关基础信息
②:选择当前模块需要使用的技术集(仅保留JDBC)
③:手动添加MyBatisPlus起步依赖
注意事项1:由于mp并未被收录到idea的系统内置配置,无法直接选择加入
注意事项2:如果使用Druid数据源,需要导入对应坐标
④:制作实体类与表结构
(类名与表名对应,属性名与字段名对应)
⑤:设置Jdbc参数(application.yml)
⑥:定义数据接口,继承BaseMapper
⑦:测试类中注入dao接口,测试功能
MyBatisPlus概述
MyBatis介绍
- MyBatisPlus(简称MP)是基于MyBatis框架基础上开发的增强型工具,旨在简化开发、提高效率
MyBatisPlus特性
- 无侵入:只做增强不做改变,不会对现有工程产生影响
- 强大的 CRUD 操作:内置通用 Mapper,少量配置即可实现单表CRUD 操作
- 支持 Lambda:编写查询条件无需担心字段写错
- 支持主键自动生成
- 内置分页插件
- ……
MyBatisPlus的CRUD操作
Lombok插件介绍
Lombok,一个Java类库,提供了一组注解,简化POJO实体类开发。
常用注解:@Data,为当前实体类在编译期设置对应的get/set方法,无参/无参构造方法,toString方法,hashCode方法,equals方法等
MyBatisPlus分页功能
分页功能接口
MyBatisPlus分页使用
①:设置分页拦截器作为Spring管理的bean
②:执行分页查询
开启MyBatisPlus日志
解决日志打印过多问题
取消初始化spring日志打印
做法:在resources下新建一个logback.xml文件,名称固定,内容如下:
- MyBatisPlus将书写复杂的SQL查询条件进行了封装,使用编程的形式完成查询条件的组合
条件查询
方式一:按条件查询
方式二:lambda格式按条件查询
方式三:lambda格式按条件查询(推荐)
组合条件
并且关系(and)
或者关系(or)
NULL值处理
在多条件查询中,有条件的值为空应该怎么解决?
1 if语句控制条件追加
2 条件参数控制
3 条件参数控制(链式编程)
查询投影-设置【查询字段、分组、分页】
查询结果包含模型类中部分属性
查询结果包含模型类中未定义的属性
查询条件设定
查询条件
用户登录(eq匹配)
购物设定价格区间、户籍设定年龄区间(le ge匹配 或 between匹配)
查信息,搜索新闻(非全文检索版:like匹配)
统计报表(分组查询聚合函数)
查询API
https://mybatis.plus/guide/wrapper.html#abstractwrapper
字段映射与表名映射
问题一:表字段与编码属性设计不同步
在模型类属性上方,使用**@TableField**属性注解,通过==value==属性,设置当前属性对应的数据库表中的字段关系。
问题二:编码中添加了数据库中未定义的属性
- 在模型类属性上方,使用**@TableField注解,通过exist**属性,设置属性在数据库表字段中是否存在,默认为true。此属性无法与value合并使用。
问题三:采用默认查询开放了更多的字段查看权限
- 在模型类属性上方,使用**@TableField注解,通过select**属性:设置该属性是否参与查询。此属性与select()映射配置不冲突。
问题四:表名与编码开发设计不同步
- 在模型类上方,使用**@TableName注解,通过value**属性,设置当前类对应的数据库表名称。
声明:材料来源上课笔记,禁止转载,如有侵权通知即删。