1-1 MyBatis与JPA对比
1-2 MyBatis-Plus简介
2-1 通用传统模式简介及通用mapper新增方法
配置文件
通用mapper方法大纲
2-2 常用注解
1.@TableName 表名映射
数据库名不同,在类上增加@TableName("mp_user")
2.@TableId 主键映射
主键ID的驼峰一般无法识别,在主键属性上增加@TableId
3.@TableField 字段映射
属性与字段名不相同,在属性上增加@TableField("name")
当表名为 mp_user 时,在不改变 实体类的名字的情况下,通过添加 @TableName(“表名mp_user”)的方式来指定对应的数据库表名,以此解决在不编写sql语句的情况下,实体类的名字与数据库表名不一致而导致无法进行表操作的问题。
2-3 排除非表字段的三种方式
第一种:
添加 transient 标识 某一字段不参与实例化过程,一般用于过渡字段,在数据库表中没有对应的字段,如果直接添加而进行实例化的排除, 会被自动进行映射到数据库表中,而由于没有对应的字段,会报错。
第二种:
将要排除的字段声明为静态变量,手动创建 对应的静态GET/SET 方法,静态的属性的静态方法只能使用类进行调用,此时,实例化的过程会将该静态字段排除掉,在调用 MP 进行映射时不会被映射进去
第三种:
使用 @TableField(exist=false)标识当前变量不是数据库表中的字段,这种情况下,该属性不会被映射到数据库中
3-1 普通查询
普通查询方法:
1、List<T> selectBatch(List<T> ids)
2、List<T> selectByMap(Map<key,value> map)
PS:map中的key为数据库中的列名(如果输入的是实体类中的属性名会报错)、value是列对应的值
selectById 普通查询
selectBatchIds 多个值查询 Arrays.asList()
selectByMap 条件查询 Map的key为字段,生成的语句为where name= ? and age=?
selectBatchIds(@Param(Constants.COLLECTION)Collection<? extends Serializable> idList);
根据id集合获取对象集合list
Arrays.asList(id1,id2)
将list集合参数进行forEach输出:
userList.forEach(System.out::println);
3-2 条件构造器查询
3-3 select不列出全部字段
选择查询表中的字段
select(字段1,字段2) 选择字段返回,select可以写在queryWrapper后面:
select排除某些字段
去除某些列名的数据返回
.select(User.class, info->!info.getColumn().equals("create_time")&&
!info.getColumn().equals("email"));
数据返回create_time和email
3-4 condition作用
like(condition,"字段",value) 判定哪个字段不为空时,进行判定,
与原mybatis中的
<if test="focus_count != null ">
是一个道理,那么在这里,其实跟if test 比较起来,也差不多,
if test 需要写两遍 上判定,下判定
同样的在mp中的写法 写得也算简短了
如果判定isNotEmpty为true,则进行该字段的对比查询
如果返回false,说明这个字段为空,不进行按此字段查询
3-5 实体作为条件构造器构造方法的参数
实体对象中设置名字的模糊查询
不想设定等值搜索,将这里设定注解 condition.
年龄小于的注入
3-6 AllEq用法
allEq的用法
allEq第二个参数设定false,值为null的忽略掉
忽略如果键为name时的查询参数
3-7 其他使用条件构造器的方法
以map的形式,比实体类的优势在于选择查询时,不会有那么多null的字段键返回.
selectOne只能查返回数据中仅一条的
3-8 lambda条件构造器
Lambda表达式查询方式
三种Lambda表达式创建方式
使用lambda表达式进行like和lt的搜索
防止编译的错误
使用Lambda查询多条件
提供了防误写功能,写错就报错,防止编译的错误
4-1 自定义sql
自定义SQL的两种方式:
第一种: 使用自定义注解 的方式实现,在 dao 层的方法上使用@Select (“sql 语句”)的方式编写 sql 语句,会自动映射到数据库表中
第二种: 使用创建 mapper.xml 的方式来创建 配置文件,通过在配置文件中 创建 sql 语句,并配置 namespace 名称空间,指向有效的 dao 层,从而实现数据的映射
使用第二种需要对application.yml文件进行配置
4-2 分页查询
分页查询 :
分页插件配置类: 创建 MybatisPlusConfig类,注入到 Spring中进行管理
分页查询的第一种方式:
使用userMapper.selectPage(page,data);返回结果为 实体类 javabean
分页查询的第二种方式:
使用userMapper.selectPage(page,data);返回结果为 Map<String,Object>集合类
5-1 更新方法
updateById
updateWrapper
updateWrapper2
updateWrapper3
updateWrapperLambda
updateWrapperLambdaChain
5-2 删除方法
deleteById
deleteByMap
deleteBatchIds
deleteByWrapper
6-1 AR模式
AR模式的使用:
条件1:
必须存在对应的原始mapper并继承Model<User> 泛型类,并配置相应类注解,
同时申明序列号 serialVersionUID = 1L
条件2:
在 mapper 接口 中要 继承 BaseMapper<Object.class> 泛型类
6-2 基本配置
创建mybatis-config.xml 配置文件
7-1 通用service
service所有方法