数据库客户端工具

1.3.0开始支持

数据库客户端工具是一个可以通过yml配置,自动初始化连接池的工具,不需要重复做代码的开发。

可以同时支持多个数据库连接配置。

引入工具包

<dependency>
    <groupId>com.wueasy</groupId>
    <artifactId>wueasy-data-datasource</artifactId>
    <version>最新版本</version>
</dependency>

数据库连接配置

  • datasource:配置数据库连接集合,可以配置多个数据库连接
    • demo:数据源连接的key,可以配置多个,唯一
      • isLog:是否输出sql日志
        • primary:是否主数据源,默认第一个数据源为主数据源
      • mybatis:mybatis扫描的配置信息
        • basePackage:扫描的mapper文件路径,多个逗号分隔
        • mapperLocations:xml配置文件路径,多个逗号分隔
      • connection:数据库连接配置信息(连接信息参考druid
wueasy :
  data: 
    datasource :
      demo :
        isLog: true #是否输出日志,true是,默认false
        mybatis:
          basePackage: com.wueasy.demo.mapper
          mapperLocations: classpath*:mybatis/wueasy/demo/*.xml
        connection:
          url : jdbc:mysql://localhost:3306/easy_data?serverTimezone=Asia/Shanghai&useSSL=false&useUnicode=true&characterEncoding=utf-8
          username : easyadmin
          password : easyadmin
          #连接池配置
          initialSize : 10  #初始化大小
          minIdle : 10  #最小连接
          maxActive : 20  #最大连接
          maxWait : 60000  #配置获取连接等待超时的时间
          timeBetweenEvictionRunsMillis : 60000  #配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
          minEvictableIdleTimeMillis : 300000  #配置一个连接在池中最小生存的时间,单位是毫秒
          maxEvictableIdleTimeMillis : 600000  #配置一个连接在池中最大生存的时间,单位是毫秒
          validationQuery : SELECT 1
          testWhileIdle : true
          testOnBorrow : false
          testOnReturn : false
          keepAlive : true
      demo2 :
        mybatis:
          basePackage: com.wueasy.demo2.mapper
          mapperLocations: classpath*:mybatis/wueasy/demo2/*.xml
        connection:
          url : jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai&useSSL=false&useUnicode=true&characterEncoding=utf-8
          username : easyadmin
          password : easyadmin
          #连接池配置
          initialSize : 10  #初始化大小
          minIdle : 10  #最小连接
          maxActive : 20  #最大连接
          maxWait : 60000  #配置获取连接等待超时的时间
          timeBetweenEvictionRunsMillis : 60000  #配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
          minEvictableIdleTimeMillis : 300000  #配置一个连接在池中最小生存的时间,单位是毫秒
          maxEvictableIdleTimeMillis : 600000  #配置一个连接在池中最大生存的时间,单位是毫秒
          validationQuery : SELECT 1
          testWhileIdle : true
          testOnBorrow : false
          testOnReturn : false
          keepAlive : true

java中Mapper使用

通过@Autowired注解注入即可使用。

@Autowired
private DemoMapper demoMapper;

事物支持

事务只需要在方法中增加@Transactional注解即可

@Transactional
public void testTransaction() {
    Demo demo = new Demo();
    demo.setName("测试23");
    demoMapper.insert(demo);

    if(true) {
        throw new InvokeException(-1);
    }

    Demo2 demo2 = new Demo2();
    demo2.setName("测试3");
    demo2Mapper.insert(demo2);
}

启动类配置

由于spring boot启动时会自动注入数据库,所以启动类中需要配置取消数据库自动注入,增加DataSourceAutoConfiguration.class,HibernateJpaAutoConfiguration.class,DataSourceTransactionManagerAutoConfiguration.class

@SpringBootApplication(exclude={DataSourceAutoConfiguration.class,HibernateJpaAutoConfiguration.class,DataSourceTransactionManagerAutoConfiguration.class})//开启组件扫描和自动配置

读写分离数据库

3.4版本开始支持

读写分离主要使用在分布式场景,使用多个只读数据库,一个主库,主库做新增、修改、删除操作,只读库只做查询操作,提高系统数据库并发。

特殊说明:当启用事务,所有的查询也会使用主库操作;当一个主库有多个只读数据库,那么会循环处理。

引入插件

引入通用的mybatis插件

<dependency>
  <groupId>com.wueasy</groupId>
  <artifactId>wueasy-data-mybatis-plugin</artifactId>
    <version>最新版本</version>
</dependency>

配置信息

  • readonly-datasource:配置只读数据库信息,可以配置多个只读数据库
    • demo:数据源连接的key,必须和主数据库配置一致。
      • connection:数据库连接配置信息,可以配置多个list(连接信息参考druid
wueasy:
  data:
    readonly-datasource:
      demo:
      - connection: 
          url : jdbc:mysql://localhost:3306/senior?serverTimezone=Asia/Shanghai&useSSL=false&useUnicode=true&characterEncoding=utf-8
          username : easyadmin
          password : easyadmin
          #连接池配置
          initialSize : 10  #初始化大小
          minIdle : 10  #最小连接
          maxActive : 20  #最大连接
          maxWait : 60000  #配置获取连接等待超时的时间
          timeBetweenEvictionRunsMillis : 60000  #配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
          minEvictableIdleTimeMillis : 300000  #配置一个连接在池中最小生存的时间,单位是毫秒
          maxEvictableIdleTimeMillis : 600000  #配置一个连接在池中最大生存的时间,单位是毫秒
          validationQuery : SELECT 1
          testWhileIdle : true
          testOnBorrow : false
          testOnReturn : false
          keepAlive : true
      - connection: 
          url : jdbc:mysql://localhost:3306/standard?serverTimezone=Asia/Shanghai&useSSL=false&useUnicode=true&characterEncoding=utf-8
          username : easyadmin
          password : easyadmin
          #连接池配置
          initialSize : 10  #初始化大小
          minIdle : 10  #最小连接
          maxActive : 20  #最大连接
          maxWait : 60000  #配置获取连接等待超时的时间
          timeBetweenEvictionRunsMillis : 60000  #配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
          minEvictableIdleTimeMillis : 300000  #配置一个连接在池中最小生存的时间,单位是毫秒
          maxEvictableIdleTimeMillis : 600000  #配置一个连接在池中最大生存的时间,单位是毫秒
          validationQuery : SELECT 1
          testWhileIdle : true
          testOnBorrow : false
          testOnReturn : false
          keepAlive : true
Copyright © wueasy.com 2017-2022 all right reserved,powered by Gitbook未经允许,禁止以任何形式传播 修订时间: 2021-12-01

results matching ""

    No results matching ""