IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 2021.08.16小结 -> 正文阅读

[Java知识库]2021.08.16小结

mybatisplus官网??https://mp.baomidou.com/

一? .1.1mybatisplus整合springboot入门

①创建新模块选择spring并配置模块的基础信息

②选择模块需要使用的技术集(sql? ?->? ? MySQL Driver)

③手动添加mybatisplus起步依赖

<dependency>
? ? <groupId>com.baomidou</groupId>
? ? <artifactId>mybatis-plus-boot-starter</artifactId>
? ? <version>3.4.1</version>
</dependency>

④设置jdbc的参数(配置改为.yml结尾)? 如果使用数据源导入对应的坐标

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.2.6</version>
</dependency>

⑤制作实体类与表的结构对应

⑥定义数据层接口继承BaseMapper<>并使用注解@Mapper

⑦测试类中注入dao接口,测试功能

1.2? lombok插件介绍

lombok,一个java类库,提供了一组注解来简化实体类开发

<dependency>
? ? <groupId>org.projectlombok</groupId>
? ? <artifactId>lombok</artifactId>
? ? <version>1.18.12</version>
</dependency>

@Data? ?为当前实体类在编译期设置对应的get/set方法,无参/无参构造方法,toString方法,hashCode方法,equals方法等

1.3? ?mybatisplus分页使用

?????????//1.定义Mp拦截器
? ? ? ? MybatisPlusInterceptor mpInterceptor = new MybatisPlusInterceptor();
? ? ? ? //2.添加具体的拦截器
? ? ? ? mpInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());

1.4? ?开启mybatisplus日志

在application.yml中配置
mybatis-plus:
? configuration:
? ? log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

二? DQL编程控制

1.条件查询方式

①按条件查询
????????QueryWrapper qw = new QueryWrapper();
????????qw.lt("age", 18);
????????List<User> userList = userDao.selectList(qw);
????????System.out.println(userList);

②?lambda格式按条件查询

????????QueryWrapper<User> qw = new QueryWrapper<User>();
????????qw.lambda().lt(User::getAge, 10);
????????List<User> userList = userDao.selectList(qw);
????????System.out.println(userList);

③l也是lambda格式

????????LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>();
????????lqw.lt(User::getAge, 10);
????????List<User> userList = userDao.selectList(lqw);
????????System.out.println(userList);

(lt? :小于? ? gt :大于? ?le:小于等于? ge:大于等于? ?eq 等于? ?between:在?和?之间)

2.字段映射和表映射

@TableField ????????通过value属性,设置当前属性对应的数据库表中的字段关系。(属性名和列名不一致时设置)

@TableField? ? ? ? ??通过exist属性,设置属性在数据库表字段中是否存在,默认为true。(数据库没有这个列名的时候使用)

@TableField????????通过selec属性:设置该属性是否参与查询。此属性与select()映射配置不冲突。

@TableName????????通过value属性,设置当前类对应的数据库表名称。(数据库表名和实体类名不相同时使用,顶替在类的上方)

三???DML编程控制

1.? ?id生成策略控制

@TableId(type = IdType.Atuo)? ? ? ? 使用数据库id自增策略控制id生成

@TableId(type = NONE)? ? ? ? ????????不设置id生成策略

@TableId(type = INPUT)? ? ? ? ? ? ? ? 自定义用set方法设置id

@TableId(type = ASSIGN_ID)? ? ? ? 雪花算法生成id? ? ? ??

@TableId(type = ASSIGN_UUID)? ?用uuid生成id? ? ? ??

1.2? ? 全局策略配置

????????mybatis-plus:
????????? global-config:
? ????????? db-config:
? ????????? ? id-type: assign_id
? ? ????????? table-prefix: tbl_

1.3逻辑删除

①:实体类中添加对应字段,并设定当前字段为逻辑删除标记字段

?????????@TableLogic
????????? ? private Integer deleted;

②:配置逻辑删除字面值(逻辑删除实际并没有删除但是看不见需要更高的权限才能看见)

????????mybatis-plus:
????????? global-config:
????????? ? db-config:
? ????????? ? table-prefix: tbl_
? ????????? ? # 逻辑删除字段名
? ????????? ? logic-delete-field: deleted
? ????????? ? # 逻辑删除字面值:未删除为0
? ????????? ? logic-not-delete-value: 0
? ????????? ? # 逻辑删除字面值:删除为1
? ????????? ? logic-delete-value: 1

1.4? 乐观锁

①:实体类中添加对应字段,并设定当前字段为逻辑删除标记字段

?????????@Version
? ????????? private Integer version;

②:配置乐观锁拦截器实现锁机制对应的动态SQL语句拼装

?????????//1.定义Mp拦截器
? ? ? ? MybatisPlusInterceptor mpInterceptor = new MybatisPlusInterceptor();

? ? ? ? //2.添加乐观锁拦截器
? ? ? ? mpInterceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-08-17 15:15:56  更:2021-08-17 15:17:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/21 5:43:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码