springboot集成mybatis plus

阅读数:81 评论数:0

跳转到新版页面

分类

python/Java

正文

一、项目依赖

<dependencies>
        <!-- -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- 测试 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!-- mybaits plus 插件 -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.0.5</version>
        </dependency>
​
        <!-- 阿里数据库连接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.10</version>
        </dependency>
        <!-- 数据库驱动 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <!-- lombok简化代码 -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
​
    </dependencies>

二、配置文件

1、表主键 的配置

 0:"数据库ID自增";
1:"用户输入ID";
2:"全局唯一ID (数字类型唯一ID)";
3:"全局唯一ID UUID";

2、配置示例

# 配置端口
server:
  port: 8085
  servlet:
    context-path: /zszxz
    application-display-name: mybatis-plus-demo
​
spring:
  application:
    name: mybatis-plus-demo
  # 配置数据源
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/zszxz?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&useSSL=false
    username: root
    password: 
    driver-class-name: com.mysql.jdbc.Driver
    druid:
      filters: stat
      maxActive: 20
      initialSize: 1
      maxWait: 60000
      minIdle: 1
      timeBetweenEvictionRunsMillis: 60000
      minEvictableIdleTimeMillis: 300000
      validationQuery: select '1'
      testWhileIdle: true
      testOnBorrow: false
      testOnReturn: false
      poolPreparedStatements: true
      maxOpenPreparedStatements: 20
​
# mybatis-plus相关配置
mybatis-plus:
  # xml扫描,多个目录用逗号或者分号分隔(告诉 Mapper 所对应的 XML 文件位置)
  mapper-locations: classpath:**/*Mapper.xml
  # 以下配置均有默认值,可以不设置
  global-config:
    #主键类型  0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
    id-type: 0
    #字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
    field-strategy: 2
    #驼峰下划线转换
    db-column-underline: true
    #刷新mapper 调试神器
    refresh-mapper: false
    #数据库大写下划线转换
    #capital-mode: true
    #序列接口实现类配置
    #key-generator: com.baomidou.springboot.xxx
    #逻辑删除配置
    #logic-delete-value: 0 # 逻辑已删除值(默认为 1)
    #logic-not-delete-value: 1 # 逻辑未删除值(默认为 0)
    #自定义填充策略接口实现
    #    meta-object-handler: com.zhengqing.config.MyMetaObjectHandler
    #自定义SQL注入器
    #sql-injector: com.baomidou.springboot.xxx
  configuration:
    # 是否开启自动驼峰命名规则映射:从数据库列名到Java属性驼峰命名的类似映射
    map-underscore-to-camel-case: true
    cache-enabled: false
    # 如果查询结果中包含空值的列,则 MyBatis 在映射的时候,不会映射这个字段
    #    call-setters-on-nulls: true
    # 这个配置会将执行的sql打印出来,在开发或测试的时候可以用
    #    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    # 解决oracle更新数据为null时无法转换报错,mysql不会出现此情况
    jdbc-type-for-null: 'null'

三、实体

@TableName 映射数据库表名

@TableId 对应主键类型,局部配置;

@TableField 注解对应数据库字段

@Data
@TableName("customer")// 映射数据库表名
public class Customer {
    //主键
    @TableId(type = IdType.AUTO)
    private Long id;
​
    // 如果字段和数据库列对应可省略该注解
    // @TableField(value = "NAME",exist = true)
    private String customerName;
​
    private String gender;
​
    private String telephone;
​
    private String registerTime;
}

四、mapper和xml

1、mapper

mapper继承BaseMapper

@Repository
@Mapper
public interface CustomerMapper extends BaseMapper<Customer> {
​
​
}

2、映射文件

与普通的mybatis映射文件一样;如果要使用原生的Mybatis 方法,自定义即可.

3、在接口方法上直接使用注解

除了在xml文件中编写sql外,还可以直接在接口方法上使用注解的方式编写sql

public interface KapokBlockMapper extends BaseMapper<KapokBlock> {
    @Select("select ifnull(max(sort),0) from kapok_block")
    int getMaxSort();
}

五、分页配置

@Configuration
@MapperScan("com.zszxz.plus.service.*.mapper*")
public class MybatisPlusConfig {
​
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
        // 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求  默认false
        // paginationInterceptor.setOverflow(false);
        // 设置最大单页限制数量,默认 500 条,-1 不受限制
        // paginationInterceptor.setLimit(500);
        return paginationInterceptor;
    }
}



相关推荐

一、概述 springboot中有两种方式使用kafka时,直接使用kafka-client连接kafka服务;另一种是使用spring-kafka框架来连接kafka。 1、版本兼容 使用时要注意版

当然可以自己写redis的工具类,或者使用第三方开源jar包或代码,这里使用spring boot的集成类。 一、pom依赖 <dependency> <gro

websocket协议基于tcp的网络协议,它实现浏览器与器全双工通信。 spring boot2 +websocket 1、添加依赖 <pre clas

背景: 之前用spring boot+mybatis+oracle,现在要改成spring boot_mybatis+postgresql。 为了想让一套代码即可

共同点 都是用来表示Spring某个类是否可以接收HTTP请求。 不同点 @Controller标识一个spring类是Spring MVC c

系统异常捕获 参见:spring boot 2 全局异常处理 @ControllerAdvice(annotations = {RestController.class}) public class

从SSH(Structs/Spring/Hibernate)到SSM(SpringMVC/Spring/MyBatis),到现在一个S(Spring)就够的年代,可见Spring越来越重要了。<

mybatis-plus是一个mybatis增强版工具,为了简化开发和提高效率。 可以在idea安装一个mybatisx插件,此插件可以通过mapper中的方法定位到xml中。</

使用mybatis plus时,当我们遇见我们的实体类名驼峰写法时: private Date createTime

1、Controller package com.xkcoding.rbac.security.controller;