MyBatis:
- 是一个框架,基于框架能让编程更加规范
- 对于每一个表,我们都要建立一个实体类(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:对什么方法进行测试
- 注解开发:我们可以不写statement,直接在mapper方法上写注解(复杂功能建议不要使用)
MyBatisPlus:
- MyBatisPlus整合SpringBoot
- 由于目前idea还不支持创建项目时勾选plus,我们要自己配置坐标
- dao接口继承一个类就完成了
- 条件查询:比如模糊查询,分组,范围,包含,排序
- 都在lqw自带的函数中有实现
lt表示小于,gt表示大于,User::getAge是Lambda形式
- 模拟页面传回数据进行null值的操作:
- 映射匹配兼容性:
- 属性与表列名不同:
- 新增属性不想在表中体现:
- 属性(列值)不想显示在查询结果中:
- 表名和类名不同:
- 自增(数据库也要选上自增操作才可以):
- 根据某种算法计算出来的属性值:
- 多数据操作(单数据操作是只有最后一句):
- 逻辑删除:有些数据一旦删除,那么因为关联其他表中的数据也可能随之改变。我们设置一个值,这些数据逻辑上被删除了,这样查询不到,但是其关联的数据确不会被删除。(0代表正常,1代表被删)在底层就是把sql由删除变为update,并且查询的时候后面自动补上deleted=0。
- 乐观锁:执行更新是判断是否有别人执行,若有放弃自己的更新操作。防止多人同时修改数据。
- (原理)马上要修改前的version与第一次取出来的version值进行比对。
- 在表中加一列version,每次有人更新就自增1
- 类加新属性:
- 设置拦截器: