当前位置:   article > 正文

配置多数据源的三种方式(Spring boot + Bee)_java配置三个数据源

java配置三个数据源

1. Java 配置方式

  1. public class InitSameDsUtil {
  2. public static void initDS() {
  3. try {
  4. DruidDataSource dataSource0;
  5. dataSource0 = new DruidDataSource();
  6. dataSource0.setUrl("jdbc:mysql://localhost:3306/bee?characterEncoding=UTF-8&useSSL=false");
  7. dataSource0.setUsername("root");
  8. dataSource0.setPassword("123456");
  9. dataSource0.init();
  10. DruidDataSource dataSource1;
  11. dataSource1 = new DruidDataSource();
  12. dataSource1.setUrl("jdbc:mysql://localhost:3306/pro?characterEncoding=UTF-8&useSSL=false");
  13. dataSource1.setUsername("root");
  14. dataSource1.setPassword("123456");
  15. dataSource1.init();
  16. // 以上数据源,也可以通过XML方式配置
  17. // (二十二)ORM框架Bee,Spring配置多数据源实例
  18. // https://blog.csdn.net/abckingaa/article/details/120956130
  19. Map<String, DataSource> dataSourceMap = new HashMap<>();
  20. dataSourceMap.put("ds0", dataSource0);
  21. dataSourceMap.put("ds1", dataSource1);
  22. // BeeFactory.getInstance().setDataSourceMap(dataSourceMap);
  23. HoneyContext.setDataSourceMap(dataSourceMap);//V2.1
  24. } catch (SQLException e) {
  25. e.printStackTrace();
  26. }
  27. }
  28. }

2. Spring xml配置方式

applicationContext.xml

原文: https://blog.csdn.net/abckingaa/article/details/120956130

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
  5. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
  6. <!-- ds1 -->
  7. <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
  8. destroy-method="close">
  9. <property name="driverClass" value="com.mysql.jdbc.Driver" />
  10. <property name="jdbcUrl"
  11. value="jdbc:mysql://localhost:3306/teasoft?characterEncoding=UTF-8" />
  12. <property name="user" value="root" />
  13. <property name="password" value="" />
  14. <property name="initialPoolSize" value="10" />
  15. <property name="minPoolSize" value="10" />
  16. <property name="maxPoolSize" value="20" />
  17. <property name="maxIdleTime" value="1800" />
  18. </bean>
  19. <bean id="ds2" class="com.mchange.v2.c3p0.ComboPooledDataSource"
  20. destroy-method="close">
  21. <property name="driverClass" value="com.mysql.jdbc.Driver" />
  22. <property name="jdbcUrl"
  23. value="jdbc:mysql://localhost:3306/bee?characterEncoding=UTF-8" />
  24. <property name="user" value="root" />
  25. <property name="password" value="" />
  26. <property name="initialPoolSize" value="10" />
  27. <property name="minPoolSize" value="10" />
  28. <property name="maxPoolSize" value="20" />
  29. <property name="maxIdleTime" value="1800" />
  30. </bean>
  31. <!-- <bean id="beeFactory" class="org.teasoft.honey.osql.core.BeeFactory">
  32. <property name="dataSource" ref="dataSource"></property>
  33. </bean> -->
  34. <bean id="beeFactory" class="org.teasoft.honey.osql.core.BeeFactory">
  35. <property name="dataSourceMap">
  36. <map>
  37. <entry key="ds1" value-ref="dataSource" />
  38. <entry key="ds2" value-ref="ds2" />
  39. </map>
  40. </property>
  41. </bean>
  42. <bean id="sessionFactory" class="org.teasoft.honey.osql.core.SessionFactory">
  43. <property name="beeFactory" ref="beeFactory"></property>
  44. </bean>
  45. <import resource="beeContext.xml"></import>
  46. </beans>

3. 配置文件方式 

放在bee.properties, application.properties,application.yml三种文件都可以.

以下是bee.properties, application.properties的风格写法, 

application.yml 可以使用其相应的风格. 

  1. #druid
  2. #dbs数组,其它下标,是否从首个元素继承属性(但dsName不能继承)
  3. bee.db.extendFirst=true
  4. bee.db.dbs[0].dsName=ds0
  5. bee.db.dbs[0].type=Druid
  6. bee.db.dbs[0].driverName = com.mysql.jdbc.Driver
  7. bee.db.dbs[0].url =jdbc:mysql://localhost:3306/bee?characterEncoding=UTF-8&useSSL=false
  8. bee.db.dbs[0].username = root
  9. bee.db.dbs[0].password =123456
  10. bee.db.dbs[0].initialSize=10
  11. bee.db.dbs[0].minIdle=10
  12. bee.db.dbs[0].maxActive=50
  13. bee.db.dbs[0].maxWait=60000
  14. bee.db.dbs[0].timeBetweenEvictionRunsMillis=60000
  15. bee.db.dbs[1].dsName=ds1
  16. bee.db.dbs[1].type=Druid
  17. bee.db.dbs[1].driverName = com.mysql.jdbc.Driver
  18. bee.db.dbs[1].url =jdbc:mysql://localhost:3306/pro?characterEncoding=UTF-8&useSSL=false
  19. bee.db.dbs[1].username = root
  20. bee.db.dbs[1].password =123456

使用多数据源,  可以使用分库分表, 也可以只使用分库或只使用分表. 

还有可能就是为了从不同的数据库中获取数据,这些数据库还有可能同时有MySQL, Oracle, Mongodb等,折腾的是,还可能有MS Access这种数据库.

没事, Java ORM Bee都支持, 它还是个低代码的框架, 可以让你不用再写Dao代码.

setDataSourceName("ds0"); //就可以指定数据源

还可以通过包名, 表名规则路由到指定数据源.

Sharding分片的话, 只需要一句话,就可以完成分片. 有以下两种写法,与表名关系或与实现类关联.

数据源有ds0,ds1; test_user总共有6个表, ds0是test_user0,test_user1,test_user2,另外三个在ds1.分片键是id, 默认是根据id的值求余,余数的下标即可表的下标.

  1. ShardingConfig.addShardingBean("test_user",new ShardingBean("ds[0..1].test_user[0..5]", "id"));
  2. ShardingConfig.addShardingBean(TestMyUser.class,new ShardingBean("ds[0..1].test_my_user[0..5]", "id"));

Java ORM Bee   同时支持JDBC(比如JavaWeb),Android和Harmony;支持Sharding分片;支持多种关系型数据库(MySQL,MariaDB,Oracle,H2,SQLite,PostgreSQL,SQL Server,Access等),还支持NoSQL的Cassandra,Mongodb等
 

源码下载:

https://github.com/automvc/bee

https://gitee.com/automvc/bee

https://gitee.com/automvc/bee-springboot
 

https://blog.csdn.net/abckingaa/article/details/121664398

ORM Bee资料大全(入门实例, 多数据源,整合Spring boot等)_abckingaa的博客-CSDN博客_orm bee

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/52368
推荐阅读
相关标签
  

闽ICP备14008679号