Mybatis及PLus

发布时间 2023-03-29 17:55:11作者: java摩卡,一滴不撒

MyBatis:

  1. 是一个框架,基于框架能让编程更加规范

 

  1. 对于每一个表,我们都要建立一个实体类(Brand),一个总的的mapper(BrandMapper)和一个相应的xml(BrandMapper.xml)和一个总的Test类,还要在mybaits.config.xml中写上

mybaits.config.xml:

对于mapper,可以用包扫描的方式,不用每个实体类的mapper都配置一遍

对包起别名:在enviroment上配置,之后在mapper文件中写resultmap的时候可以不写那么复杂了

BrandMappe.xml:书写sql语句,有占位符(书写的sql语句又叫statement)

id要和BrandMapper的方法名一致,resultType表示该方法的返回值类型(由于对包起了别名,因此可以简化为以下写法),之后写sql语句。

BrandMapper:写要执行什么方法

Test:对什么方法进行测试

  1. 注解开发:我们可以不写statement,直接在mapper方法上写注解(复杂功能建议不要使用)

MyBatisPlus:

  1. MyBatisPlus整合SpringBoot
  • 由于目前idea还不支持创建项目时勾选plus,我们要自己配置坐标

  • dao接口继承一个类就完成了

  1. 条件查询:比如模糊查询,分组,范围,包含,排序
  • 都在lqw自带的函数中有实现

lt表示小于,gt表示大于,User::getAge是Lambda形式

  • 模拟页面传回数据进行null值的操作:

  1. 映射匹配兼容性:
  • 属性与表列名不同:

  • 新增属性不想在表中体现:

  • 属性(列值)不想显示在查询结果中:

  • 表名和类名不同:

  • 自增(数据库也要选上自增操作才可以):

  • 根据某种算法计算出来的属性值:

  1. 多数据操作(单数据操作是只有最后一句):

  1. 逻辑删除:有些数据一旦删除,那么因为关联其他表中的数据也可能随之改变。我们设置一个值,这些数据逻辑上被删除了,这样查询不到,但是其关联的数据确不会被删除。(0代表正常,1代表被删)在底层就是把sql由删除变为update,并且查询的时候后面自动补上deleted=0。

  1. 乐观锁:执行更新是判断是否有别人执行,若有放弃自己的更新操作。防止多人同时修改数据。
  • (原理)马上要修改前的version与第一次取出来的version值进行比对。
  • 在表中加一列version,每次有人更新就自增1
  • 类加新属性:

  • 设置拦截器: