Selaa lähdekoodia

增加主从数据源支持,自动切换:读操作从库,写操作主库

shuzheng 9 vuotta sitten
vanhempi
sitoutus
60e70dace4
21 muutettua tiedostoa jossa 213 lisäystä ja 71 poistoa
  1. 4 4
      zheng-cms/zheng-cms-dao/src/main/java/com/zheng/cms/dao/Generator.java
  2. 4 4
      zheng-cms/zheng-cms-dao/src/main/resources/generatorConfig.xml
  3. 9 4
      zheng-cms/zheng-cms-dao/src/main/resources/jdbc.properties
  4. 17 0
      zheng-common/src/main/java/com/zheng/common/base/BaseServiceImpl.java
  5. 14 0
      zheng-common/src/main/java/com/zheng/common/db/DataSourceEnum.java
  6. 48 0
      zheng-common/src/main/java/com/zheng/common/db/DynamicDataSource.java
  7. 44 6
      zheng-common/src/main/resources/applicationContext-jdbc.xml
  8. 4 4
      zheng-common/src/main/resources/generatorConfig.vm
  9. 1 1
      zheng-common/src/main/resources/mybatis-config.xml
  10. 4 4
      zheng-pay/zheng-pay-dao/src/main/java/com/zheng/pay/dao/Generator.java
  11. 4 4
      zheng-pay/zheng-pay-dao/src/main/resources/generatorConfig.xml
  12. 9 4
      zheng-pay/zheng-pay-dao/src/main/resources/jdbc.properties
  13. 4 4
      zheng-ucenter/zheng-ucenter-dao/src/main/java/com/zheng/ucenter/dao/Generator.java
  14. 4 4
      zheng-ucenter/zheng-ucenter-dao/src/main/resources/generatorConfig.xml
  15. 9 4
      zheng-ucenter/zheng-ucenter-dao/src/main/resources/jdbc.properties
  16. 4 4
      zheng-upms/zheng-upms-dao/src/main/java/com/zheng/upms/dao/Generator.java
  17. 4 4
      zheng-upms/zheng-upms-dao/src/main/resources/generatorConfig.xml
  18. 9 4
      zheng-upms/zheng-upms-dao/src/main/resources/jdbc.properties
  19. 4 4
      zheng-wechat-mp/zheng-wechat-mp-dao/src/main/java/com/zheng/wechat/mp/dao/Generator.java
  20. 4 4
      zheng-wechat-mp/zheng-wechat-mp-dao/src/main/resources/generatorConfig.xml
  21. 9 4
      zheng-wechat-mp/zheng-wechat-mp-dao/src/main/resources/jdbc.properties

+ 4 - 4
zheng-cms/zheng-cms-dao/src/main/java/com/zheng/cms/dao/Generator.java

@@ -11,10 +11,10 @@ public class Generator {
 
 	// 根据命名规范,只修改此常量值即可
 	private static String MODULE_PREFIX_NAME = "cms";
-	private static String JDBC_DRIVER = PropertiesFileUtil.getInstance("jdbc").get("jdbc.driver");
-	private static String JDBC_URL = PropertiesFileUtil.getInstance("jdbc").get("jdbc.url");
-	private static String JDBC_USERNAME = PropertiesFileUtil.getInstance("jdbc").get("jdbc.username");
-	private static String JDBC_PASSWORD = PropertiesFileUtil.getInstance("jdbc").get("jdbc.password");
+	private static String JDBC_DRIVER = PropertiesFileUtil.getInstance("jdbc").get("master.jdbc.driver");
+	private static String JDBC_URL = PropertiesFileUtil.getInstance("jdbc").get("master.jdbc.url");
+	private static String JDBC_USERNAME = PropertiesFileUtil.getInstance("jdbc").get("master.jdbc.username");
+	private static String JDBC_PASSWORD = PropertiesFileUtil.getInstance("jdbc").get("master.jdbc.password");
 
 	/**
 	 * 自动代码生成

+ 4 - 4
zheng-cms/zheng-cms-dao/src/main/resources/generatorConfig.xml

@@ -46,10 +46,10 @@
         </commentGenerator>
 
         <!-- 数据库连接 -->
-        <jdbcConnection driverClass="${jdbc.driver}"
-                        connectionURL="${jdbc.url}"
-                        userId="${jdbc.username}"
-                        password="${jdbc.password}" />
+        <jdbcConnection driverClass="${master.jdbc.driver}"
+                        connectionURL="${master.jdbc.url}"
+                        userId="${master.jdbc.username}"
+                        password="${master.jdbc.password}" />
 
         <!-- model生成 -->
         <javaModelGenerator targetPackage="com.zheng.cms.dao.model" targetProject="zheng-cms/zheng-cms-dao/src/main/java" />

+ 9 - 4
zheng-cms/zheng-cms-dao/src/main/resources/jdbc.properties

@@ -1,4 +1,9 @@
-jdbc.driver=com.mysql.jdbc.Driver
-jdbc.url=jdbc\:mysql\://127.0.0.1\:3306/zheng?useUnicode\=true&characterEncoding\=utf-8&autoReconnect\=true
-jdbc.username=root
-jdbc.password=123456
+master.jdbc.driver=com.mysql.jdbc.Driver
+master.jdbc.url=jdbc\:mysql\://127.0.0.1\:3306/zheng?useUnicode\=true&characterEncoding\=utf-8&autoReconnect\=true
+master.jdbc.username=root
+master.jdbc.password=123456
+
+slave.jdbc.driver=com.mysql.jdbc.Driver
+slave.jdbc.url=jdbc\:mysql\://127.0.0.1\:3306/zheng?useUnicode\=true&characterEncoding\=utf-8&autoReconnect\=true
+slave.jdbc.username=root
+slave.jdbc.password=123456

+ 17 - 0
zheng-common/src/main/java/com/zheng/common/base/BaseServiceImpl.java

@@ -1,5 +1,7 @@
 package com.zheng.common.base;
 
+import com.zheng.common.db.DataSourceEnum;
+import com.zheng.common.db.DynamicDataSource;
 import com.zheng.common.util.SpringContextUtil;
 import org.apache.commons.lang.StringUtils;
 import org.apache.ibatis.annotations.Param;
@@ -19,6 +21,7 @@ public abstract class BaseServiceImpl<Mapper, Record, Example> implements BaseSe
 	@Override
 	public int countByExample(Example example) {
 		try {
+			DynamicDataSource.setDataSource(DataSourceEnum.SLAVE);
 			Method countByExample = mapper.getClass().getDeclaredMethod("countByExample", example.getClass());
 			Object result = countByExample.invoke(mapper, example);
 			return Integer.parseInt(String.valueOf(result));
@@ -31,6 +34,7 @@ public abstract class BaseServiceImpl<Mapper, Record, Example> implements BaseSe
 	@Override
 	public int deleteByExample(Example example) {
 		try {
+			DynamicDataSource.setDataSource(DataSourceEnum.MASTER);
 			Method deleteByExample = mapper.getClass().getDeclaredMethod("deleteByExample", example.getClass());
 			Object result = deleteByExample.invoke(mapper, example);
 			return Integer.parseInt(String.valueOf(result));
@@ -43,6 +47,7 @@ public abstract class BaseServiceImpl<Mapper, Record, Example> implements BaseSe
 	@Override
 	public int deleteByPrimaryKey(Integer id) {
 		try {
+			DynamicDataSource.setDataSource(DataSourceEnum.MASTER);
 			Method deleteByPrimaryKey = mapper.getClass().getDeclaredMethod("deleteByPrimaryKey", id.getClass());
 			Object result = deleteByPrimaryKey.invoke(mapper, id);
 			return Integer.parseInt(String.valueOf(result));
@@ -55,6 +60,7 @@ public abstract class BaseServiceImpl<Mapper, Record, Example> implements BaseSe
 	@Override
 	public int insert(Record record) {
 		try {
+			DynamicDataSource.setDataSource(DataSourceEnum.MASTER);
 			Method insert = mapper.getClass().getDeclaredMethod("insert", record.getClass());
 			Object result = insert.invoke(mapper, record);
 			return Integer.parseInt(String.valueOf(result));
@@ -67,6 +73,7 @@ public abstract class BaseServiceImpl<Mapper, Record, Example> implements BaseSe
 	@Override
 	public int insertSelective(Record record) {
 		try {
+			DynamicDataSource.setDataSource(DataSourceEnum.MASTER);
 			Method insertSelective = mapper.getClass().getDeclaredMethod("insertSelective", record.getClass());
 			Object result = insertSelective.invoke(mapper, record);
 			return Integer.parseInt(String.valueOf(result));
@@ -79,6 +86,7 @@ public abstract class BaseServiceImpl<Mapper, Record, Example> implements BaseSe
 	@Override
 	public List<Record> selectByExampleWithBLOBs(Example example) {
 		try {
+			DynamicDataSource.setDataSource(DataSourceEnum.SLAVE);
 			Method selectByExampleWithBLOBs = mapper.getClass().getDeclaredMethod("selectByExampleWithBLOBs", example.getClass());
 			Object result = selectByExampleWithBLOBs.invoke(mapper, example);
 			return (List<Record>) result;
@@ -91,6 +99,7 @@ public abstract class BaseServiceImpl<Mapper, Record, Example> implements BaseSe
 	@Override
 	public List<Record> selectByExample(Example example) {
 		try {
+			DynamicDataSource.setDataSource(DataSourceEnum.SLAVE);
 			Method selectByExample = mapper.getClass().getDeclaredMethod("selectByExample", example.getClass());
 			Object result = selectByExample.invoke(mapper, example);
 			return (List<Record>) result;
@@ -103,6 +112,7 @@ public abstract class BaseServiceImpl<Mapper, Record, Example> implements BaseSe
 	@Override
 	public Record selectByPrimaryKey(Integer id) {
 		try {
+			DynamicDataSource.setDataSource(DataSourceEnum.SLAVE);
 			Method selectByPrimaryKey = mapper.getClass().getDeclaredMethod("selectByPrimaryKey", id.getClass());
 			Object result = selectByPrimaryKey.invoke(mapper, id);
 			return (Record) result;
@@ -115,6 +125,7 @@ public abstract class BaseServiceImpl<Mapper, Record, Example> implements BaseSe
 	@Override
 	public int updateByExampleSelective(@Param("record") Record record, @Param("example") Example example) {
 		try {
+			DynamicDataSource.setDataSource(DataSourceEnum.MASTER);
 			Method updateByExampleSelective = mapper.getClass().getDeclaredMethod("updateByExampleSelective", record.getClass(), example.getClass());
 			Object result = updateByExampleSelective.invoke(mapper, record, example);
 			return Integer.parseInt(String.valueOf(result));
@@ -127,6 +138,7 @@ public abstract class BaseServiceImpl<Mapper, Record, Example> implements BaseSe
 	@Override
 	public int updateByExampleWithBLOBs(@Param("record") Record record, @Param("example") Example example) {
 		try {
+			DynamicDataSource.setDataSource(DataSourceEnum.MASTER);
 			Method updateByExampleWithBLOBs = mapper.getClass().getDeclaredMethod("updateByExampleWithBLOBs", record.getClass(), example.getClass());
 			Object result = updateByExampleWithBLOBs.invoke(mapper, record, example);
 			return Integer.parseInt(String.valueOf(result));
@@ -139,6 +151,7 @@ public abstract class BaseServiceImpl<Mapper, Record, Example> implements BaseSe
 	@Override
 	public int updateByExample(@Param("record") Record record, @Param("example") Example example) {
 		try {
+			DynamicDataSource.setDataSource(DataSourceEnum.MASTER);
 			Method updateByExample = mapper.getClass().getDeclaredMethod("updateByExample", record.getClass(), example.getClass());
 			Object result = updateByExample.invoke(mapper, record, example);
 			return Integer.parseInt(String.valueOf(result));
@@ -151,6 +164,7 @@ public abstract class BaseServiceImpl<Mapper, Record, Example> implements BaseSe
 	@Override
 	public int updateByPrimaryKeySelective(Record record) {
 		try {
+			DynamicDataSource.setDataSource(DataSourceEnum.MASTER);
 			Method updateByPrimaryKeySelective = mapper.getClass().getDeclaredMethod("updateByPrimaryKeySelective", record.getClass());
 			Object result = updateByPrimaryKeySelective.invoke(mapper, record);
 			return Integer.parseInt(String.valueOf(result));
@@ -163,6 +177,7 @@ public abstract class BaseServiceImpl<Mapper, Record, Example> implements BaseSe
 	@Override
 	public int updateByPrimaryKeyWithBLOBs(Record record) {
 		try {
+			DynamicDataSource.setDataSource(DataSourceEnum.MASTER);
 			Method updateByPrimaryKeyWithBLOBs = mapper.getClass().getDeclaredMethod("updateByPrimaryKeyWithBLOBs", record.getClass());
 			Object result = updateByPrimaryKeyWithBLOBs.invoke(mapper, record);
 			return Integer.parseInt(String.valueOf(result));
@@ -175,6 +190,7 @@ public abstract class BaseServiceImpl<Mapper, Record, Example> implements BaseSe
 	@Override
 	public int updateByPrimaryKey(Record record) {
 		try {
+			DynamicDataSource.setDataSource(DataSourceEnum.MASTER);
 			Method updateByPrimaryKey = mapper.getClass().getDeclaredMethod("updateByPrimaryKey", record.getClass());
 			Object result = updateByPrimaryKey.invoke(mapper, record);
 			return Integer.parseInt(String.valueOf(result));
@@ -190,6 +206,7 @@ public abstract class BaseServiceImpl<Mapper, Record, Example> implements BaseSe
 			if (StringUtils.isBlank(ids)) {
 				return 0;
 			}
+			DynamicDataSource.setDataSource(DataSourceEnum.MASTER);
 			String[] idArray = ids.split("-");
 			int count = 0;
 			for (String idStr : idArray) {

+ 14 - 0
zheng-common/src/main/java/com/zheng/common/db/DataSourceEnum.java

@@ -0,0 +1,14 @@
+package com.zheng.common.db;
+
+/**
+ * 多数据源枚举
+ * Created by ZhangShuzheng on 2017/1/15.
+ */
+public class DataSourceEnum {
+
+	// 主库
+	public static final String MASTER = "masterDataSource";
+	// 从库
+	public static final String SLAVE = "slaveDataSource";
+
+}

+ 48 - 0
zheng-common/src/main/java/com/zheng/common/db/DynamicDataSource.java

@@ -0,0 +1,48 @@
+package com.zheng.common.db;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
+
+/**
+ * 动态数据源(数据源切换)
+ * Created by ZhangShuzheng on 2017/1/15.
+ */
+public class DynamicDataSource extends AbstractRoutingDataSource {
+
+	private final static Logger _log = LoggerFactory.getLogger(DynamicDataSource.class);
+
+	private static final ThreadLocal<String> contextHolder = new ThreadLocal<>();
+
+	@Override
+	protected Object determineCurrentLookupKey() {
+		String dataSource = getDataSource();
+		_log.info("当前操作使用的数据源:{}", dataSource);
+		return dataSource;
+	}
+
+
+	/**
+	 * 设置数据源
+	 * @param dataSource
+	 */
+	public static void setDataSource(String dataSource) {
+		contextHolder.set(dataSource);
+	}
+
+	/**
+	 * 获取数据源
+	 * @return
+	 */
+	public static String getDataSource() {
+		return contextHolder.get();
+	}
+
+	/**
+	 * 清除数据源
+	 */
+	public static void clearDataSource() {
+		contextHolder.remove();
+	}
+
+}

+ 44 - 6
zheng-common/src/main/resources/applicationContext-jdbc.xml

@@ -17,13 +17,13 @@
 	<!-- 引入jdbc配置文件 -->
 	<context:property-placeholder location="classpath:jdbc.properties" />
 	
-	<!-- 连接池配置 -->
-	<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
+	<!-- 主库数据源 -->
+	<bean id="masterDataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
 		<!-- 基本属性 url、user、password -->
-		<property name="driverClassName" value="${jdbc.driver}" />
-		<property name="url" value="${jdbc.url}" />
-		<property name="username" value="${jdbc.username}" />
-		<property name="password" value="${jdbc.password}" />
+		<property name="driverClassName" value="${master.jdbc.driver}" />
+		<property name="url" value="${master.jdbc.url}" />
+		<property name="username" value="${master.jdbc.username}" />
+		<property name="password" value="${master.jdbc.password}" />
 		<!-- 配置初始化大小、最小、最大 -->
 		<property name="initialSize" value="1" />
 		<property name="minIdle" value="1" />
@@ -42,6 +42,44 @@
 		<!-- 配置监控统计拦截的filters -->
 		<property name="filters" value="stat" />
 	</bean>
+
+	<!-- 从库数据源 -->
+	<bean id="slaveDataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
+		<!-- 基本属性 url、user、password -->
+		<property name="driverClassName" value="${slave.jdbc.driver}" />
+		<property name="url" value="${slave.jdbc.url}" />
+		<property name="username" value="${slave.jdbc.username}" />
+		<property name="password" value="${slave.jdbc.password}" />
+		<!-- 配置初始化大小、最小、最大 -->
+		<property name="initialSize" value="1" />
+		<property name="minIdle" value="1" />
+		<property name="maxActive" value="20" />
+		<!-- 配置获取连接等待超时的时间 -->
+		<property name="maxWait" value="60000" />
+		<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
+		<property name="timeBetweenEvictionRunsMillis" value="60000" />
+		<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
+		<property name="minEvictableIdleTimeMillis" value="300000" />
+		<!-- 校验语句 -->
+		<property name="validationQuery" value="SELECT 1" />
+		<property name="testWhileIdle" value="true" />
+		<property name="testOnBorrow" value="false" />
+		<property name="testOnReturn" value="false" />
+		<!-- 配置监控统计拦截的filters -->
+		<property name="filters" value="stat" />
+	</bean>
+
+    <!-- 动态数据源 -->
+    <bean id="dataSource" class="com.zheng.common.db.DynamicDataSource">
+        <property name="targetDataSources">
+            <map key-type="java.lang.String">
+                <!-- 可配置多个数据源 -->
+                <entry value-ref="masterDataSource" key="masterDataSource"></entry>
+                <entry value-ref="slaveDataSource" key="slaveDataSource"></entry>
+            </map>
+        </property>
+        <property name="defaultTargetDataSource" ref="masterDataSource"></property>
+    </bean>
 	
 	<!-- 为Mybatis创建SqlSessionFactory,同时指定数据源 -->
 	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

+ 4 - 4
zheng-common/src/main/resources/generatorConfig.vm

@@ -46,10 +46,10 @@
         </commentGenerator>
 
         <!-- 数据库连接 -->
-        <jdbcConnection driverClass="${jdbc.driver}"
-                        connectionURL="${jdbc.url}"
-                        userId="${jdbc.username}"
-                        password="${jdbc.password}" />
+        <jdbcConnection driverClass="${master.jdbc.driver}"
+                        connectionURL="${master.jdbc.url}"
+                        userId="${master.jdbc.username}"
+                        password="${master.jdbc.password}" />
 
         <!-- model生成 -->
         <javaModelGenerator targetPackage="${generator_javaModelGenerator_targetPackage}" targetProject="${targetProject}/src/main/java" />

+ 1 - 1
zheng-common/src/main/resources/mybatis-config.xml

@@ -6,7 +6,7 @@
 
 	<!-- 全局配置 -->
 	<settings>
-		<setting name="cacheEnabled" value="true"/>
+		<setting name="cacheEnabled" value="false"/>
 	</settings>
 
 </configuration>

+ 4 - 4
zheng-pay/zheng-pay-dao/src/main/java/com/zheng/pay/dao/Generator.java

@@ -11,10 +11,10 @@ public class Generator {
 
 	// 根据命名规范,只修改此常量值即可
 	private static String MODULE_PREFIX_NAME = "pay";
-	private static String JDBC_DRIVER = PropertiesFileUtil.getInstance("jdbc").get("jdbc.driver");
-	private static String JDBC_URL = PropertiesFileUtil.getInstance("jdbc").get("jdbc.url");
-	private static String JDBC_USERNAME = PropertiesFileUtil.getInstance("jdbc").get("jdbc.username");
-	private static String JDBC_PASSWORD = PropertiesFileUtil.getInstance("jdbc").get("jdbc.password");
+	private static String JDBC_DRIVER = PropertiesFileUtil.getInstance("jdbc").get("master.jdbc.driver");
+	private static String JDBC_URL = PropertiesFileUtil.getInstance("jdbc").get("master.jdbc.url");
+	private static String JDBC_USERNAME = PropertiesFileUtil.getInstance("jdbc").get("master.jdbc.username");
+	private static String JDBC_PASSWORD = PropertiesFileUtil.getInstance("jdbc").get("master.jdbc.password");
 
 	/**
 	 * 自动代码生成

+ 4 - 4
zheng-pay/zheng-pay-dao/src/main/resources/generatorConfig.xml

@@ -46,10 +46,10 @@
         </commentGenerator>
 
         <!-- 数据库连接 -->
-        <jdbcConnection driverClass="${jdbc.driver}"
-                        connectionURL="${jdbc.url}"
-                        userId="${jdbc.username}"
-                        password="${jdbc.password}" />
+        <jdbcConnection driverClass="${master.jdbc.driver}"
+                        connectionURL="${master.jdbc.url}"
+                        userId="${master.jdbc.username}"
+                        password="${master.jdbc.password}" />
 
         <!-- model生成 -->
         <javaModelGenerator targetPackage="com.zheng.pay.dao.model" targetProject="zheng-pay/zheng-pay-dao/src/main/java" />

+ 9 - 4
zheng-pay/zheng-pay-dao/src/main/resources/jdbc.properties

@@ -1,4 +1,9 @@
-jdbc.driver=com.mysql.jdbc.Driver
-jdbc.url=jdbc\:mysql\://127.0.0.1\:3306/zheng?useUnicode\=true&characterEncoding\=utf-8&autoReconnect\=true
-jdbc.username=root
-jdbc.password=123456
+master.jdbc.driver=com.mysql.jdbc.Driver
+master.jdbc.url=jdbc\:mysql\://127.0.0.1\:3306/zheng?useUnicode\=true&characterEncoding\=utf-8&autoReconnect\=true
+master.jdbc.username=root
+master.jdbc.password=123456
+
+slave.jdbc.driver=com.mysql.jdbc.Driver
+slave.jdbc.url=jdbc\:mysql\://127.0.0.1\:3306/zheng?useUnicode\=true&characterEncoding\=utf-8&autoReconnect\=true
+slave.jdbc.username=root
+slave.jdbc.password=123456

+ 4 - 4
zheng-ucenter/zheng-ucenter-dao/src/main/java/com/zheng/ucenter/dao/Generator.java

@@ -11,10 +11,10 @@ public class Generator {
 
 	// 根据命名规范,只修改此常量值即可
 	private static String MODULE_PREFIX_NAME = "ucenter";
-	private static String JDBC_DRIVER = PropertiesFileUtil.getInstance("jdbc").get("jdbc.driver");
-	private static String JDBC_URL = PropertiesFileUtil.getInstance("jdbc").get("jdbc.url");
-	private static String JDBC_USERNAME = PropertiesFileUtil.getInstance("jdbc").get("jdbc.username");
-	private static String JDBC_PASSWORD = PropertiesFileUtil.getInstance("jdbc").get("jdbc.password");
+	private static String JDBC_DRIVER = PropertiesFileUtil.getInstance("jdbc").get("master.jdbc.driver");
+	private static String JDBC_URL = PropertiesFileUtil.getInstance("jdbc").get("master.jdbc.url");
+	private static String JDBC_USERNAME = PropertiesFileUtil.getInstance("jdbc").get("master.jdbc.username");
+	private static String JDBC_PASSWORD = PropertiesFileUtil.getInstance("jdbc").get("master.jdbc.password");
 
 	/**
 	 * 自动代码生成

+ 4 - 4
zheng-ucenter/zheng-ucenter-dao/src/main/resources/generatorConfig.xml

@@ -46,10 +46,10 @@
         </commentGenerator>
 
         <!-- 数据库连接 -->
-        <jdbcConnection driverClass="${jdbc.driver}"
-                        connectionURL="${jdbc.url}"
-                        userId="${jdbc.username}"
-                        password="${jdbc.password}" />
+        <jdbcConnection driverClass="${master.jdbc.driver}"
+                        connectionURL="${master.jdbc.url}"
+                        userId="${master.jdbc.username}"
+                        password="${master.jdbc.password}" />
 
         <!-- model生成 -->
         <javaModelGenerator targetPackage="com.zheng.ucenter.dao.model" targetProject="zheng-ucenter/zheng-ucenter-dao/src/main/java" />

+ 9 - 4
zheng-ucenter/zheng-ucenter-dao/src/main/resources/jdbc.properties

@@ -1,4 +1,9 @@
-jdbc.driver=com.mysql.jdbc.Driver
-jdbc.url=jdbc\:mysql\://127.0.0.1\:3306/zheng?useUnicode\=true&characterEncoding\=utf-8&autoReconnect\=true
-jdbc.username=root
-jdbc.password=123456
+master.jdbc.driver=com.mysql.jdbc.Driver
+master.jdbc.url=jdbc\:mysql\://127.0.0.1\:3306/zheng?useUnicode\=true&characterEncoding\=utf-8&autoReconnect\=true
+master.jdbc.username=root
+master.jdbc.password=123456
+
+slave.jdbc.driver=com.mysql.jdbc.Driver
+slave.jdbc.url=jdbc\:mysql\://127.0.0.1\:3306/zheng?useUnicode\=true&characterEncoding\=utf-8&autoReconnect\=true
+slave.jdbc.username=root
+slave.jdbc.password=123456

+ 4 - 4
zheng-upms/zheng-upms-dao/src/main/java/com/zheng/upms/dao/Generator.java

@@ -11,10 +11,10 @@ public class Generator {
 
 	// 根据命名规范,只修改此常量值即可
 	private static String MODULE_PREFIX_NAME = "upms";
-	private static String JDBC_DRIVER = PropertiesFileUtil.getInstance("jdbc").get("jdbc.driver");
-	private static String JDBC_URL = PropertiesFileUtil.getInstance("jdbc").get("jdbc.url");
-	private static String JDBC_USERNAME = PropertiesFileUtil.getInstance("jdbc").get("jdbc.username");
-	private static String JDBC_PASSWORD = PropertiesFileUtil.getInstance("jdbc").get("jdbc.password");
+	private static String JDBC_DRIVER = PropertiesFileUtil.getInstance("jdbc").get("master.jdbc.driver");
+	private static String JDBC_URL = PropertiesFileUtil.getInstance("jdbc").get("master.jdbc.url");
+	private static String JDBC_USERNAME = PropertiesFileUtil.getInstance("jdbc").get("master.jdbc.username");
+	private static String JDBC_PASSWORD = PropertiesFileUtil.getInstance("jdbc").get("master.jdbc.password");
 
 	/**
 	 * 自动代码生成

+ 4 - 4
zheng-upms/zheng-upms-dao/src/main/resources/generatorConfig.xml

@@ -46,10 +46,10 @@
         </commentGenerator>
 
         <!-- 数据库连接 -->
-        <jdbcConnection driverClass="${jdbc.driver}"
-                        connectionURL="${jdbc.url}"
-                        userId="${jdbc.username}"
-                        password="${jdbc.password}" />
+        <jdbcConnection driverClass="${master.jdbc.driver}"
+                        connectionURL="${master.jdbc.url}"
+                        userId="${master.jdbc.username}"
+                        password="${master.jdbc.password}" />
 
         <!-- model生成 -->
         <javaModelGenerator targetPackage="com.zheng.upms.dao.model" targetProject="zheng-upms/zheng-upms-dao/src/main/java" />

+ 9 - 4
zheng-upms/zheng-upms-dao/src/main/resources/jdbc.properties

@@ -1,4 +1,9 @@
-jdbc.driver=com.mysql.jdbc.Driver
-jdbc.url=jdbc\:mysql\://127.0.0.1\:3306/zheng?useUnicode\=true&characterEncoding\=utf-8&autoReconnect\=true
-jdbc.username=root
-jdbc.password=123456
+master.jdbc.driver=com.mysql.jdbc.Driver
+master.jdbc.url=jdbc\:mysql\://127.0.0.1\:3306/zheng?useUnicode\=true&characterEncoding\=utf-8&autoReconnect\=true
+master.jdbc.username=root
+master.jdbc.password=123456
+
+slave.jdbc.driver=com.mysql.jdbc.Driver
+slave.jdbc.url=jdbc\:mysql\://127.0.0.1\:3306/zheng?useUnicode\=true&characterEncoding\=utf-8&autoReconnect\=true
+slave.jdbc.username=root
+slave.jdbc.password=123456

+ 4 - 4
zheng-wechat-mp/zheng-wechat-mp-dao/src/main/java/com/zheng/wechat/mp/dao/Generator.java

@@ -11,10 +11,10 @@ public class Generator {
 
 	// 根据命名规范,只修改此常量值即可
 	private static String MODULE_PREFIX_NAME = "wechat.mp";
-	private static String JDBC_DRIVER = PropertiesFileUtil.getInstance("jdbc").get("jdbc.driver");
-	private static String JDBC_URL = PropertiesFileUtil.getInstance("jdbc").get("jdbc.url");
-	private static String JDBC_USERNAME = PropertiesFileUtil.getInstance("jdbc").get("jdbc.username");
-	private static String JDBC_PASSWORD = PropertiesFileUtil.getInstance("jdbc").get("jdbc.password");
+	private static String JDBC_DRIVER = PropertiesFileUtil.getInstance("jdbc").get("master.jdbc.driver");
+	private static String JDBC_URL = PropertiesFileUtil.getInstance("jdbc").get("master.jdbc.url");
+	private static String JDBC_USERNAME = PropertiesFileUtil.getInstance("jdbc").get("master.jdbc.username");
+	private static String JDBC_PASSWORD = PropertiesFileUtil.getInstance("jdbc").get("master.jdbc.password");
 
 	/**
 	 * 自动代码生成

+ 4 - 4
zheng-wechat-mp/zheng-wechat-mp-dao/src/main/resources/generatorConfig.xml

@@ -46,10 +46,10 @@
         </commentGenerator>
 
         <!-- 数据库连接 -->
-        <jdbcConnection driverClass="${jdbc.driver}"
-                        connectionURL="${jdbc.url}"
-                        userId="${jdbc.username}"
-                        password="${jdbc.password}" />
+        <jdbcConnection driverClass="${master.jdbc.driver}"
+                        connectionURL="${master.jdbc.url}"
+                        userId="${master.jdbc.username}"
+                        password="${master.jdbc.password}" />
 
         <!-- model生成 -->
         <javaModelGenerator targetPackage="com.zheng.wechat.mp.dao.model" targetProject="zheng-wechat-mp/zheng-wechat-mp-dao/src/main/java" />

+ 9 - 4
zheng-wechat-mp/zheng-wechat-mp-dao/src/main/resources/jdbc.properties

@@ -1,4 +1,9 @@
-jdbc.driver=com.mysql.jdbc.Driver
-jdbc.url=jdbc\:mysql\://127.0.0.1\:3306/zheng?useUnicode\=true&characterEncoding\=utf-8&autoReconnect\=true
-jdbc.username=root
-jdbc.password=123456
+master.jdbc.driver=com.mysql.jdbc.Driver
+master.jdbc.url=jdbc\:mysql\://127.0.0.1\:3306/zheng?useUnicode\=true&characterEncoding\=utf-8&autoReconnect\=true
+master.jdbc.username=root
+master.jdbc.password=123456
+
+slave.jdbc.driver=com.mysql.jdbc.Driver
+slave.jdbc.url=jdbc\:mysql\://127.0.0.1\:3306/zheng?useUnicode\=true&characterEncoding\=utf-8&autoReconnect\=true
+slave.jdbc.username=root
+slave.jdbc.password=123456