我现在在做的这套系统要求所有的数据都分离一份出来,但程序只用一套。就是在tomcat下面只发布一个应用。我是想这样设计, 在登陆的时候提供一个选择帐套的功能,选择不同的帐套后台连接不同的数据库。我们框架是用的struts2+ibatis+spring,这样子spring要怎样去根据用户选择,从而选择性的加载不同的jdbc.properties文件。
做过这样的例子的高手能提供一下思路吗?先谢谢大家了。
做过这样的例子的高手能提供一下思路吗?先谢谢大家了。
解决方案 »
- java获取邮件的未读或已读状态
- hibernate动态生成表
- 大型系统,tomcat5.5下的连接池maxIdle,maxWait,maxActive这三个参数设置为多少合适?
- 【讨论】JAVA缓存讨论与比较
- dbcp不能关闭由于异常而打开的数据库连接?
- 使用打印机时经常会碰到的一个问题
- 50分请大家帮我看一下weblogic连接oracle8的问题
- 上海-月薪6000~15000 招聘Java 工程师
- lookup时遇到的问题!!!
- An exception occurred processing JSP page /view/book/book_edit.jsp at line 21
- 关于struts2的配置问题
- java Jni UnsatisfiedLinkError
#数据源1
jdbc.user=
jdbc.password=
jdbc.jdbcUrl=
jdbc.poolmin=
jdbc.poolinit=
#数据源2
um.jdbc.user=
um.jdbc.password=
#um.jdbc.jdbcUrl=
um.jdbc.jdbcUrl=
um.jdbc.driverClass=
um.jdbc.poolmax=
um.jdbc.poolmin=
um.jdbc.poolinit=
那我怎样去拿到不同的connection?
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="ianywhere.ml.jdbcodbc.jdbc3.IDriver">
</property>
<property name="url"
value="jdbc:odbc:driver=SQL Anywhere 11;eng=zyx;links=tcpip{host=10.144.99.46;port=2998};">
</property>
<property name="username" value="zyx"></property>
<property name="password" value="zyx"></property>
<property name="initialSize" value="1"></property>
<property name="maxActive" value="500"></property>
<property name="maxIdle" value="5"></property>
<property name="minIdle" value="1"></property>
</bean>
<!-- 定义数据源Oracle -->
<bean id="dataSourceOracle" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property>
<property name="url" value="jdbc:oracle:thin:@10.144.99.114:1521/sanexcfg"></property>
<property name="username" value="sanex"></property>
<property name="password" value="sanex"></property>
<property name="initialSize" value="1"></property>
<property name="maxActive" value="500"></property>
<property name="maxIdle" value="5"></property>
<property name="minIdle" value="1"></property>
</bean>
<!-- 定义数据源sqlserver dataSource -->
<bean id="dataSourceSqlServer"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="com.microsoft.jdbc.sqlserver.SQLServerDriver">
</property>
<property name="url"
value="jdbc:microsoft:sqlserver://10.71.158.50:1433;DatabaseName=Mon;">
</property>
<property name="username" value="sa"></property>
<property name="password" value="sa"></property>
<property name="initialSize" value="1"></property>
<property name="maxActive" value="500"></property>
<property name="maxIdle" value="5"></property>
<property name="minIdle" value="1"></property>
</bean>
<!-- 配置 ibatis 的sqlMapClient -->
<bean id="sqlMapClient"
class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation"
value="/WEB-INF/sqlMapConfig.xml" />
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="sqlMapClientOrac"
class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation"
value="/WEB-INF/sqlMapConfig.xml" />
<property name="dataSource" ref="dataSourceOracle" />
</bean>
使用:
@Resource(name = "sqlMapClient")
private SqlMapClient sqlMapClient;
@Resource(name = "sqlMapClientOrac")
private SqlMapClient sqlMapClientOrac;
public void executeSp(Map map) throws Exception{
sqlMapClient.queryForList("userpercept.userAnalyse.addUsefulProcedure", map);
}
public List<Cell> getCellList() throws Exception{
return sqlMapClientOrac.queryForList("userpercept.userAnalyse.getCellList");
}
public PlaceCell getCell(Long id) throws Exception {
PlaceCell cell = (PlaceCell) sqlMapClient
.queryForObject("userpercept.userAnalyse.selectCell",id);
return cell;
}