1、MybatisPlus入门案例
1、添加MysqlDriver和MybatisPlus依赖
2、用dao接口来继承BaseMapper ,要标明泛型类型,之后可直接在service中使用查询方法
使用案例:
2、MybatisPlus简介与特性
MybatisPlus特性:
1、无侵入:只增强不做改变,不会对现有工程产生影响
2、强大的CRUD操作,内置通用 Mapper ,少量配置即可实现单表CRUD 操作
3、支持Lambda:编写查询条件无需担心字段写错
4、支持主键自动生成
5、内置分页插件
3、标准CRUD操作
测试案例
更新案例:
更新操作:只修改更新的过
查询操作
4、标准分页功能制作
MybatisPlus需要配置一个分页拦截器,才能实现分页查询
分页查询代码实例:
开启MybatisPlus日志输出到控制台
mybatisplus:configuration:logimpl 开启日志
5、条件查询的三种格式
Wrapper就是用来封装查询条件的
推荐使用第三种方式:
条件之间的关系:
6、条件查询NULL值判定
原因:前端页面传来的值可能为空值
eg:
解决方法:在查询前添加判断语句,判断是否为null,如果不为就执行sql语句查询,否则不执行。
7、查询投影
查询投影:就是设置查询出来的结果长什么样。
只有LambdaQueryWrapper才能使用对象的属性,QueryWrapper只能使用表中的属性字符串
如果查询出来的结果不是原来对象,可以用Map封装。
8、查询条件设置
lt、le:小于、小于等于
gt、ge:大于、大于等于
likeleft:%j,%在左边
likeright:j%,%在右边
9、映射匹配兼容性
问题一:表字段与编码属性设计不同步
问题二:编码中添加了数据库中未定义的属性
问题三:采用默认查询开放了更多的字段查看权限(password会暴露)
问题四:表名与编码开发设计不同步
10、id生成策略
定义主键有四种选择
全局配置:
11、多数据操作(删除与查询)
deleteBatchIds 这个API可实现多条数据删除
12、逻辑删除
逻辑删除并不是真正的删除只是在修改了数据的状态
注解@TableLogic (value =“0”,delval=“1”)设定当前标记字段为逻辑删除标记字段,数据库中的属性要有默认值,删除时执行的是update操作。
查询数据,不会显示已被删除的数据。如要查询所有数据需要手写sql语句。
13、乐观锁
乐观锁解决并发问题 (可处理2000以下的请求)
1、在数据库中添加锁标记字段
2、实体类中添加相应字段,并添加@Version注解
3、在配置类中添加乐观锁拦截器
eg:
执行结果:
14、代码生成器
可实现快速构建项目
1、导入相关依赖
2、创建codegentor类文件