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 }