闲话少说,直接列举问题:
①AB两台数据库服务器做集群,由于两台服务器配置不一样,如何在代码中要实现每访问服务器A的数据库2次,才能访问服务器B的数据库1次。
②AB两台数据库服务器做读写分离,如何在代码中控制,查询数据使用服务器A的数据库连接,增删改使用服务器B的数据库连接。
代码结构:
代码实现:
①数据库连接信息默认值
package com.keji10.core.jdbc.properties; /** * 类描述: 数据库连接信息默认值 * * @since 1.5 * @version 1.0 * @author xuanly * */ public interface JdbcPropertiesContants { /** * jdbc.maxActive最大活跃数(默认值) */ public static final int JDBC_MAXACTIVE_DEFAULT = 20; /** * jdbc.maxIdle最大连接数(默认值) */ public static final int JDBC_MAXIDLE_DEFAULT = 20; /** * jdbc.maxWait默认等待时间(默认值) */ public static final int JDBC_MAXWAIT_DEFAULT = 10000; /** * jdbc.weight默认数据库连接池权重(默认值) */ public static final int JDBC_WEIGHT_DEFAULT = 1; }
package com.keji10.core.jdbc.properties; /** * 类描述: 数据库配置文件实体类 * * @since 1.5 * @version 1.0 * @author xuanly * */ public class JdbcPropertiesBean implements JdbcPropertiesContants { private String jdbcDriver; private String jdbcUrl; private String jdbcUserName; private String jdbcPassword; private int jdbcMaxactive; private int jdbcMaxidle; private int jdbcMaxwait; private int jdbcWeight; public String getJdbcDriver() { return jdbcDriver; } public void setJdbcDriver(String jdbcDriver) { this.jdbcDriver = jdbcDriver; } public String getJdbcUrl() { return jdbcUrl; } public void setJdbcUrl(String jdbcUrl) { this.jdbcUrl = jdbcUrl; } public String getJdbcUserName() { return jdbcUserName; } public void setJdbcUserName(String jdbcUserName) { this.jdbcUserName = jdbcUserName; } public String getJdbcPassword() { return jdbcPassword; } public void setJdbcPassword(String jdbcPassword) { this.jdbcPassword = jdbcPassword; } public int getJdbcWeight() { if (jdbcWeight == 0) { // 返回默认值 return JDBC_WEIGHT_DEFAULT; } return jdbcWeight; } public void setJdbcWeight(int jdbcWeight) { this.jdbcWeight = jdbcWeight; } public int getJdbcMaxactive() { if (jdbcMaxactive == 0) { // 返回默认值 return JDBC_MAXACTIVE_DEFAULT; } return jdbcMaxactive; } public void setJdbcMaxactive(int jdbcMaxactive) { this.jdbcMaxactive = jdbcMaxactive; } public int getJdbcMaxidle() { if (jdbcMaxidle == 0) { // 返回默认值 return JDBC_MAXIDLE_DEFAULT; } return jdbcMaxidle; } public void setJdbcMaxidle(int jdbcMaxidle) { this.jdbcMaxidle = jdbcMaxidle; } public int getJdbcMaxwait() { if (jdbcMaxwait == 0) { // 返回默认值 return JDBC_MAXWAIT_DEFAULT; } return jdbcMaxwait; } public void setJdbcMaxwait(int jdbcMaxwait) { this.jdbcMaxwait = jdbcMaxwait; } public String toString() { StringBuffer s = new StringBuffer(); s.append("jdbcDriver =" + jdbcDriver); s.append("jdbcUrl =" + jdbcUrl); s.append("jdbcUserName =" + jdbcUserName); s.append("jdbcPassword =" + jdbcPassword); s.append("jdbcMaxactive =" + jdbcMaxactive); s.append("jdbcMaxidle =" + jdbcMaxidle); s.append("jdbcMaxwait =" + jdbcMaxwait); s.append("jdbcWeight =" + jdbcWeight); return s.toString(); } }
③数据库配置文件信息获取
package com.keji10.core.jdbc.properties; import java.util.ResourceBundle; import org.apache.log4j.Logger; import com.keji10.core.exception