一、maven配置
<mybatis-plus.version>3.2.0</mybatis-plus.version>
<mysql-connector.version>8.0.13</mysql-connector.version>
<druid-spring-boot.version>1.1.22</druid-spring-boot.version>
<lombok.version>1.16.18</lombok.version>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${druid-spring-boot.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql-connector.version}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>
二、修改配置文件
application.yml
# 打印Mysql查詢日志
logging:
level:
com.baijia.umetric.dao.mapper: debug
# mybatis插件打印日志,打印查詢結果
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
spring:
main:
allow-bean-definition-overriding: true
# 延遲加載
jpa:
open-in-view: false
jdbc.properties
db-metric.datasource.name=metric-db
db-metric.datasource.type=com.alibaba.druid.pool.DruidDataSource
db-metric.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
db-metric.datasource.url=jdbc:mysql://ip地址:3306/measures_dict?\
allowMultiQueries=true&useUnicode=true&characterEncoding=UTF8&autoReconnect=true&zeroDateTimeBehavior=convertToNull
db-metric.datasource.username=root
db-metric.datasource.password=root
#最大連接池數量
db-metric.datasource.max-active=200
#獲取連接時最大等待時間,單位毫秒.配置之后,缺省啟用公平鎖,並發效率會有所下降
db-metric.datasource.max-wait=10000
#初始化時建立物理連接的個數
db-metric.datasource.initial-size=10
# 用來檢測連接是否有效的sql,要求是一個查詢語句
db-metric.datasource.validation-query=SELECT 1
#申請連接時執行validationQuery檢測連接是否有效,配置會降低性能
db-metric.datasource.test-on-borrow=false
#歸還連接時執行validationQuery檢測連接是否有效,配置會降低性能
db-metric.datasource.test-while-idle=true
#Destroy線程會檢測連接的間隔時間,如果連接空閑時間大於等於minEvictableIdleTimeMillis則關閉物理連接
db-metric.datasource.time-between-eviction-runs-millis=18800
java的config目錄新增MetricDbConfig.java
package com.baijia.umetric.config;
import javax.sql.DataSource;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.context.annotation.PropertySource;
import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
import lombok.extern.slf4j.Slf4j;
@Configuration
@Slf4j
@PropertySource("classpath:jdbc.properties")
@MapperScan("com.baijia.umetric.dao.mapper")
public class MetricDbConfig {
@Primary
@Bean
@ConfigurationProperties(prefix = "db-metric.datasource")
public DataSource dataSource() {
log.info("-------------------- metric DataSource init ---------------------");
return DruidDataSourceBuilder.create().build();
}
}
新增分頁插件配置 MybatisPlusConfig.java
package com.baijia.umetric.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
@Configuration
public class MybatisPlusConfig {
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
}
三、使用
MetricDTO.java
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
@TableName("metrices")
@Data
public class MetricDTO {
//主鍵
@TableId(type = IdType.AUTO)
private Integer id;
//精度,保留小數點位數
@TableField("`precision`")
private Integer precision;
}
MetricMapper.java
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@Mapper
public interface MetricMapper extends BaseMapper<MetricDTO> {
}
Service層使用
LambdaQueryWrapper<MetricDTO> userQueryWrapper = Wrappers.lambdaQuery();
userQueryWrapper.like(MetricDTO::getNameCn,"test");
Page<MetricDTO> page= new Page<>(1, 1);
metricMapper.selectPage(page, userQueryWrapper);