我们来讲讲mybatis plus的用法吧!

MyBatis与JPA的比较

MyBatis优势

  • sql语句可以*控制,更灵活,性能较高。
  • Sql与代码分离,易于阅读和维护。
  • 提供xml标签,支持编写动态sql语句。

JPA优势

  • Jpa移植性比较好(jpql)
  • 提供了很多crud方法,开发效率高
  • 对象化程度更高

Mybatis劣势

  • 简单crud操作还得写sql语句
  • Xml中有大量的sql要维护
  • Mybatis自身功能很有限,但支持plugin

在mybatis-puls中使用的Application.yml一些常识:
spring:
datasource:
  driver-class-name:com:mysql.cj.jdbc.Driver(mysql的驱动不一致使用的就不样,就会报错)
  url:jdbc:mysql://localhost:3306/数据库名?useSSL=false(不建议在没有服务器身份验证的情况下建立SSL连接。根据MySQL 5.5.45+、5.6.26+和5.7.6+的要求,如果不设置显式选项,则必须建立默认的SSL连接。需要通过设置useSSL=false来显式禁用SSL,或者设置useSSL=true并为服务器证书验证提供信任存储。)&serverTimezone=GMT%2B8(表示北京时间的东八区,且%2B—>表示+)
  username:
  password:

Lambda:

Lambda表达式是一个匿名函数,换句话说,Lambda表达式表达了一个被实现的接口,这个接口中只有一个抽象方法,在实现这一个接口后创建对象并将这个对象作为参数传给了目标方法。那么,这里list.forEach方法的参数一定是一个接口。
我们来讲讲mybatis plus的用法吧!
在测试中需要增加两个注解:
我们来讲讲mybatis plus的用法吧!
再来了解下日志输出:
我们来讲讲mybatis plus的用法吧!
Springboot的日志等级查看以下网址

参考内容:https://www.jianshu.com/p/1fa12b92d5c4

使用的常用注解:

@TableName(“表名”)---->指定哪个表
@TableId
Private Long userId---->该注解表明哪个字段是主键(不一定是id)
@TableField---->指定数据库的哪个字段,在idea中的字段不想和数据库的字段名一致,可以使用该注解(我是不介意这样,复杂化了,别人看起来也麻烦)
排除非字段的三种方式:
1.transient:在实体类中添加transient,例如private transient String remake
2.static: 实现序列化,static 必须手动生成get/set方法, 例如private static String remake
3[email protected]:每个对象必须有一个此属性@TableField(exist=false),表示该字段不存在。

核心查询:

1、T SelectById(Serializable id):serializable可以是任何数据类型。进行查询。
2、
我们来讲讲mybatis plus的用法吧!
例题
我们来讲讲mybatis plus的用法吧!
作用:查询多个指定的id数据。

3、
我们来讲讲mybatis plus的用法吧!
例题:
我们来讲讲mybatis plus的用法吧!
作用:实现相当于查询where语句and。
4、Wrapper的查询
例题1:
我们来讲讲mybatis plus的用法吧!
例题2:
我们来讲讲mybatis plus的用法吧!
例题3:
我们来讲讲mybatis plus的用法吧!
例题4:
我们来讲讲mybatis plus的用法吧!
例题5:
我们来讲讲mybatis plus的用法吧!
例题6:
我们来讲讲mybatis plus的用法吧!
例题7:
我们来讲讲mybatis plus的用法吧!
例题8:
我们来讲讲mybatis plus的用法吧!
例题9:
我们来讲讲mybatis plus的用法吧!
Select不列出全部字段:
我们来讲讲mybatis plus的用法吧!
我们来讲讲mybatis plus的用法吧!
我们来讲讲mybatis plus的用法吧!
condition作用:
我们来讲讲mybatis plus的用法吧!
作用:使得代码更加简便。

实体作用为条件构造方法参数
在实体内容中:

我们来讲讲mybatis plus的用法吧!
实现:
我们来讲讲mybatis plus的用法吧!
allEq:
我们来讲讲mybatis plus的用法吧!