数据库客户端工具
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