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知识库 -> MybatisPlus整合SpringBoot -> 正文阅读

[Java知识库]MybatisPlus整合SpringBoot

MyBatis整合SpingBoot

一、引入SprngBoot0-Starter-parent依赖

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.6.6</version>
    <relativePath/>
</parent>

二、引入MybatisPlus以及SpringBoot基础框架

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.5.1</version>
    </dependency>
 	<!--mysql数据库连接驱动-->
	<dependency>
     	<groupId>mysql</groupId>
	 	<artifactId>mysql-connector-java</artifactId>
        <version>8.0.28</version>
	</dependency>
	<!--德鲁伊数据库连接池-->
	<dependency>
		<groupId>com.alibaba</groupId>
		<artifactId>druid-spring-boot-starter</artifactId>
        <version>1.2.8</version>        
 	</dependency>
</dependencies>

三、配置数据库连接

spring:
	datasource:
    username: 账户
    password: 密码
    url: jdbc:mysql://连接地址:3306/数据库名称?useUnicode=true&characterEncoding=utf8
    driver-class-name: com.mysql.cj.jdbc.Driver

四、配置启动配置类

1、配置分页

2、配置乐观锁

@Configuration //配置类
@EnableTransactionManagement //开启事务管理器
@MapperScan(basePackages = "扫描的Mapper包名")
public class MybatisConfig {
    /**
     * 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除)
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        //设置Mybatis拦截器
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        
        
        //设置分页拦截器类型---(数据库类型)
        PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(DbType.MYSQL);
        //配置溢出总页数后是否进行处理
        paginationInnerInterceptor.setOverflow(true);
        //单页分页条数限制
        paginationInnerInterceptor.setMaxLimit(1000L);
        //其他配置参照分页插件拦截器源码
        interceptor.addInnerInterceptor(paginationInnerInterceptor);
        
        //设置乐观锁
        /*
        	1、支持的数据类型只有:int,Integer,long,Long,Date,Timestamp,LocalDateTime
			2、整数类型下 newVersion = oldVersion + 1 newVersion 会回写到 entity 中
        	3、仅支持 updateById(id) 与 update(entity, wrapper) 方法
			4、在 update(entity, wrapper) 方法下, wrapper 不能复用!!!
        */
        OptimisticLockerInnerInterceptor optimisticLockerInnerInterceptor = new OptimisticLockerInnerInterceptor();
        interceptor.addInnerInterceptor(optimisticLockerInnerInterceptor);
       
        
      	//防止全表更新插件
        BlockAttackInnerInterceptor blockAttackInnerInterceptor = new BlockAttackInnerInterceptor();
        interceptor.addInnerInterceptor(blockAttackInnerInterceptor);
            
        return interceptor;
    }

}

五、@Mapper注解与Dao和Service使用

//Dao/Mapper
@Mapper
public interface 实体类Entity extends BaseMapper<你的数据Entity> {
   //实体类属性
}
//Service
//Interface
public interface Service名称 extends IService<实体类Entity> {
    //Service提供的方法接口定义
}
//ServiceImpl
/*
源码IService
IService 实现类( 泛型:M 是 mapper 对象,T 是实体 )
public class ServiceImpl<M extends BaseMapper<T>, T> implements IService<T> {

}
*/
@Service("注入的ServiceBean名称")
public class ServiceImpl名称 extends ServiceImpl<Mapper对象, 实体类Entity> implements Service名称 {
    //Service实现类
}

六、常用实体类注解

官方参考文档

  1. @TableName

    • 描述:表名注解,标识实体类对应的表
    • 使用位置:实体类
  2. @TableId

    • 描述:主键注解
    • 使用位置:实体类主键字段
  3. @TableField

    • 描述:字段注解(非主键)
  4. @Version

    • 描述:乐观锁注解、标记 @Verison 在字段上
  5. @EnumValue

    • 描述:普通枚举类注解(注解在枚举字段上)
  6. @TableLogic

    • 描述:表字段逻辑处理注解(逻辑删除)
    属性类型必须指定默认值描述
    valueString“”逻辑未删除值
    delvalString“”逻辑删除值
  7. @KeySequence

    • 描述:序列主键策略 oracle
    • 属性:value、resultMap
    属性类型必须指定默认值描述
    valueString“”序列名
    clazzClassLong.classid 的类型, 可以指定 String.class,这样返回的 Sequence 值是字符串"1"
  8. @OrderBy

    • 描述:内置 SQL 默认指定排序,优先级低于 wrapper 条件查询
    属性类型必须指定默认值描述
    isDescbooleantrue是否倒序查询
    sortshortShort.MAX_VALUE数字越小越靠前
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-09-24 20:42:44  更:2022-09-24 20:46:12 
 
开发: 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年11日历 -2024/11/23 8:56:35-

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