123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- package co.weiku.beetlsqldemo.config;
- import com.zaxxer.hikari.HikariDataSource;
- import org.beetl.sql.core.DefaultNameConversion;
- import org.beetl.sql.core.SQLManager;
- import org.beetl.sql.core.db.MySqlStyle;
- import org.beetl.sql.core.db.SqlServer2012Style;
- import org.beetl.sql.starter.SQLManagerCustomize;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.context.annotation.Primary;
- import org.springframework.core.env.Environment;
- import javax.sql.DataSource;
- /**
- * 数据源配置
- */
- @Configuration
- public class DataSourceConfig {
- @Primary
- @Bean(name = "ds1")
- public DataSource dataSource(Environment environment) {
- //配置数据源连接器,此处使用hikari,也可以换为Druid
- HikariDataSource ds = new HikariDataSource();
- ds.setJdbcUrl(environment.getProperty("spring.datasource.url"));
- ds.setUsername(environment.getProperty("spring.datasource.username"));
- ds.setPassword(environment.getProperty("spring.datasource.password"));
- ds.setDriverClassName(environment.getProperty("spring.datasource.driver-class-name"));
- return ds;
- }
- @Bean(name = "ds2")
- public DataSource dataSource2(Environment environment) {
- //配置数据源连接器,此处使用hikari,也可以换为Druid
- HikariDataSource ds = new HikariDataSource();
- ds.setJdbcUrl(environment.getProperty("spring.datasource2.url"));
- ds.setUsername(environment.getProperty("spring.datasource2.username"));
- ds.setPassword(environment.getProperty("spring.datasource2.password"));
- ds.setDriverClassName(environment.getProperty("spring.datasource2.driver-class-name"));
- return ds;
- }
- /**
- * SQLManager 自定义设置
- */
- @Bean
- public SQLManagerCustomize mySQLManagerCustomize() {
- return new SQLManagerCustomize() {
- @Override
- public void customize(String sqlMangerName, SQLManager manager) {
- //初始化sql
- //DBInitHelper.executeSqlScript(manager,"db/ini.sql");
- //设置命名转化NC及数据库风格
- if (sqlMangerName.equals("db1")) {
- manager.setDbStyle(new MySqlStyle());
- manager.setNc(new DefaultNameConversion());
- } else if (sqlMangerName.equals("db2")) {
- manager.setDbStyle(new SqlServer2012Style());
- manager.setNc(new DefaultNameConversion());
- }
- //可以对sqlManager进行其它设置
- }
- };
- }
- //region ========== 其它备用代码 ==========
- // @Bean(name = "db1")
- // public SQLManager getSQLManager1(@Qualifier("ds1") DataSource ds){
- // ConnectionSource source = ConnectionSourceHelper.getSingle(ds);
- // //source是唯一必须的参数,其他参数都有默认值
- // SQLManagerBuilder builder = new SQLManagerBuilder(source);
- // //设置NameConversion,这里数据库命名采用下划线风格,使用UnderlinedNameConversion
- // builder.setNc(new DefaultNameConversion());
- // //设置一个拦截器,输出debug日志,包含了sql语句和执行参数,执行时间
- // builder.setInters(new Interceptor[]{new DebugInterceptor()});
- // //设置数据库分隔,必须跟数据库一样
- // builder.setDbStyle(new MySqlStyle());
- //
- // return builder.build();
- // }
- //
- // @Bean(name = "db2")
- // public SQLManager getSQLManager2(@Qualifier("ds2") DataSource ds){
- // ConnectionSource source = ConnectionSourceHelper.getSingle(ds);
- // //source是唯一必须的参数,其他参数都有默认值
- // SQLManagerBuilder builder = new SQLManagerBuilder(source);
- // //设置NameConversion,这里数据库命名采用下划线风格,使用UnderlinedNameConversion
- // builder.setNc(new DefaultNameConversion());
- // //设置一个拦截器,输出debug日志,包含了sql语句和执行参数,执行时间
- // builder.setInters(new Interceptor[]{new DebugInterceptor()});
- // //设置数据库分隔,必须跟数据库一样
- // builder.setDbStyle(new SqlServer2012Style());
- //
- // return builder.build();
- // }
- //endregion
- }
|