MyBatis-Plus入门

第1章 课程简介及快速入门

 1-1 课程介绍及学习前须知

 1-2 MyBatis与JPA对比

既拥有mybatis的优势,又摆脱了mybatis的劣势的工具:Mybatis-Plus(MP)。

 1-3 MP简介

 1-4 lombok简介及安装 

 1-5 快速入门小例子

配置:

注:

mysql-connector-java 5中使用com.mysql.jdbc.Driver ,mysql-connector-java 6中使用com.mysql.cj.jdbc.Driver 

1、JDBC连接Mysql5 com.mysql.jdbc.Driver:

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false
username=root
password=1234


2、JDBC连接Mysql6 com.mysql.cj.jdbc.Driver, 需要指定时区serverTimezone:

driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/test?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false
username=root
password=1234


在设定时区的时候,如果设定serverTimezone=UTC,会比中国时间早8个小时,如果在中国,可以选择Asia/Shanghai或者Asia/Hongkong或GMT%2B8

driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/test?serverTimezone=Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false
username=root
password=1234

编码-实体类

编码-mapper

编码-配置mapper扫描

测试:

第2章 基本使用

 2-1 通用传统模式简介及通用mapper新增方法

注:1.在执行insert的时候,MP默认只插入非null属性。2.insert的时候默认会基于雪花算法自动生成id并填充到bean中。3.默认会自动根据驼峰命名的属性匹配表中带下划线的字段,eg. manager_id匹配managerId。

 2-2 常用注解

@TableName

@TableId

@TableField

 2-3 排除非表字段的三种方式

如果实体类中有些属性在表中没有对应字段,需要排除掉,否则sql会报错“表中没有对应的列”。

1.triansent修饰

注:若项目中需要序列化该属性,就不能用这个方式了

2.static修饰

注:MP默认不会将静态的属性加入在sql中。但用static修饰也不好,一般项目需求是每个实例有自己的remark。

3.@TableField(exist=false)  推荐使用!

第3章 MyBatis-Plus查询方法

本章主要介绍MyBatis-Plus查询的主要内容,包括普通查询、条件构造器查询、select不列出全部字段查询等内容。

 

测试:

注:若实体类中某些属性的对应字段在sql的where中判断条件都是使用某种固定判断方式,则可以在该属性上@TableField注解的condition参数中指定(默认情况下是等值判断),然后就可以用实体类作为构造条件的方式替代QueryWrapper的api方式。

场景1.当表中字段比较多而我们只需要获取少数几个字段的时候,没必要返回一个对象,因为其他字段对应的属性值都为null

场景2.当查询结果不是对象的属性时

场景:只返回一列的时候

注:查询的结果必须为0条或者1条符合的记录,否则会报错TooManyResultsException!

LambdaQueryWrapper

LambdaQueryChainWrapper(MP3.0.7+)

注:list()方法继承自父接口ChainQuery<T>

第4章 自定义sql及分页查询

本章介绍MyBatis-Plus中自定义sql和分页查询的内容。

MP3.0.7+支持使用Wrapper来生成自定义sql,wrapper对应生成的sql片段用${ew.customSqlSegment}代替;

两种方式:

1.在Mapper的方法上加@Select注解写对应sql;

2.在xml文件中写对应sql(java代码与sql隔离);

注:mapper文件最好放在resource目录下,因为idea不会编译com包下的xml文件和properties文件,也就不会发布它们了,除非在pom.xml中配置<build><resource>......</resource></build>,将src/main/java中的xml和properties文件复制到classes下;

注:若自定义sql 是两表关联查询,并且where 条件的字段值在两个表中都存在,会出现字段值不明确的错误。这种情况,在where中你需要“表别名.列名”就可以了。例如:条件构造器中的条件可以这样写,wrapper.eq("a.name","某某")

MybatisRowBounds类内存分页(逻辑分页)
MybatisPageHelper插件物理分页
MPpaginationInterceptor插件物理分页

注:默认情况下还会执行一条查询总记录数的sql,若业务需求不需要总记录数可通过设置Page的isSearchCount参数为false

注:分页插件对于自定义的sql同样可以生效

第5章 更新及删除

介绍MyBatis-Plus中更新和删除功能的使用。

UpdateQuery

注:特有方法set()

LambdaUpdateQuery

LambdaUpdateChainQuery(MP3.0.7+)

  • 其他普通删除方法

  • 以条件构造成为参数的删除方法

第6章 AR模式、主键策略和基本配置

本章介绍MyBatis-Plus中的AR模式、主键策略和基本配置等内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值