DataSourceConfig.java 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. package co.weiku.beetlsqldemo.config;
  2. import com.zaxxer.hikari.HikariDataSource;
  3. import org.beetl.sql.core.DefaultNameConversion;
  4. import org.beetl.sql.core.SQLManager;
  5. import org.beetl.sql.core.db.MySqlStyle;
  6. import org.beetl.sql.core.db.SqlServer2012Style;
  7. import org.beetl.sql.starter.SQLManagerCustomize;
  8. import org.springframework.context.annotation.Bean;
  9. import org.springframework.context.annotation.Configuration;
  10. import org.springframework.context.annotation.Primary;
  11. import org.springframework.core.env.Environment;
  12. import javax.sql.DataSource;
  13. /**
  14. * 数据源配置
  15. */
  16. @Configuration
  17. public class DataSourceConfig {
  18. @Primary
  19. @Bean(name = "ds1")
  20. public DataSource dataSource(Environment environment) {
  21. //配置数据源连接器,此处使用hikari,也可以换为Druid
  22. HikariDataSource ds = new HikariDataSource();
  23. ds.setJdbcUrl(environment.getProperty("spring.datasource.url"));
  24. ds.setUsername(environment.getProperty("spring.datasource.username"));
  25. ds.setPassword(environment.getProperty("spring.datasource.password"));
  26. ds.setDriverClassName(environment.getProperty("spring.datasource.driver-class-name"));
  27. return ds;
  28. }
  29. @Bean(name = "ds2")
  30. public DataSource dataSource2(Environment environment) {
  31. //配置数据源连接器,此处使用hikari,也可以换为Druid
  32. HikariDataSource ds = new HikariDataSource();
  33. ds.setJdbcUrl(environment.getProperty("spring.datasource2.url"));
  34. ds.setUsername(environment.getProperty("spring.datasource2.username"));
  35. ds.setPassword(environment.getProperty("spring.datasource2.password"));
  36. ds.setDriverClassName(environment.getProperty("spring.datasource2.driver-class-name"));
  37. return ds;
  38. }
  39. /**
  40. * SQLManager 自定义设置
  41. */
  42. @Bean
  43. public SQLManagerCustomize mySQLManagerCustomize() {
  44. return new SQLManagerCustomize() {
  45. @Override
  46. public void customize(String sqlMangerName, SQLManager manager) {
  47. //初始化sql
  48. //DBInitHelper.executeSqlScript(manager,"db/ini.sql");
  49. //设置命名转化NC及数据库风格
  50. if (sqlMangerName.equals("db1")) {
  51. manager.setDbStyle(new MySqlStyle());
  52. manager.setNc(new DefaultNameConversion());
  53. } else if (sqlMangerName.equals("db2")) {
  54. manager.setDbStyle(new SqlServer2012Style());
  55. manager.setNc(new DefaultNameConversion());
  56. }
  57. //可以对sqlManager进行其它设置
  58. }
  59. };
  60. }
  61. //region ========== 其它备用代码 ==========
  62. // @Bean(name = "db1")
  63. // public SQLManager getSQLManager1(@Qualifier("ds1") DataSource ds){
  64. // ConnectionSource source = ConnectionSourceHelper.getSingle(ds);
  65. // //source是唯一必须的参数,其他参数都有默认值
  66. // SQLManagerBuilder builder = new SQLManagerBuilder(source);
  67. // //设置NameConversion,这里数据库命名采用下划线风格,使用UnderlinedNameConversion
  68. // builder.setNc(new DefaultNameConversion());
  69. // //设置一个拦截器,输出debug日志,包含了sql语句和执行参数,执行时间
  70. // builder.setInters(new Interceptor[]{new DebugInterceptor()});
  71. // //设置数据库分隔,必须跟数据库一样
  72. // builder.setDbStyle(new MySqlStyle());
  73. //
  74. // return builder.build();
  75. // }
  76. //
  77. // @Bean(name = "db2")
  78. // public SQLManager getSQLManager2(@Qualifier("ds2") DataSource ds){
  79. // ConnectionSource source = ConnectionSourceHelper.getSingle(ds);
  80. // //source是唯一必须的参数,其他参数都有默认值
  81. // SQLManagerBuilder builder = new SQLManagerBuilder(source);
  82. // //设置NameConversion,这里数据库命名采用下划线风格,使用UnderlinedNameConversion
  83. // builder.setNc(new DefaultNameConversion());
  84. // //设置一个拦截器,输出debug日志,包含了sql语句和执行参数,执行时间
  85. // builder.setInters(new Interceptor[]{new DebugInterceptor()});
  86. // //设置数据库分隔,必须跟数据库一样
  87. // builder.setDbStyle(new SqlServer2012Style());
  88. //
  89. // return builder.build();
  90. // }
  91. //endregion
  92. }