java web项目中hibernate +spring +tomcat如何实现多数据库

java web项目中hibernate +spring +tomcat如何实现多数据库,第1张

一下方法只能是同一种数据库, 因为数据库不同的话,数据库方言也就不同,这个暂时解决不了

applicationContextxml:

<bean id="parentDataSource" class="orgapachecommonsdbcpBasicDataSource" destroy-method="close">

<!-- 设置连接池初始值 -->

<property name="initialSize" value="5" />

<!-- 设置连接池最大值 -->

<property name="maxActive" value="5" />

<!-- 设置连接池最小空闲值 -->

<property name="minIdle" value="2" />

<!-- 设置连接池最大空闲值 -->

<property name="maxIdle" value="5" />

</bean>

<bean id="sessionFactory" class="orgspringframeworkormhibernate3annotationAnnotationSessionFactoryBean">

<property name="dataSource" ref="dataSource"/>

<property name="hibernateProperties">

<value>

<!-- 设置数据库方言 -->

hibernatedialect=orghibernatedialectOracle10gDialect

<!-- 输出SQL语句到控制台 -->

hibernateshow_sql=true

<!-- 格式化输出到控制台的SQL语句 -->

hibernateformat_sql=true

</value>

</property>

<property name="packagesToScan" value="comzxwlinkbusinessentity"></property>

</bean>

<bean id="dataSource" class="comzxwlinkcommonsdataDynamicDataSource">

<property name="targetDataSources">

<map key-type="javalangString">

<entry key="zxw" value-ref="zxw_DataSource"/>

<entry key="new_back" value-ref="new_back_DataSource"/>

<!--更多的数据源,根据下面的配置文件再写一个datasource 并且在这里配置entry -->

</map>

</property>

<property name="defaultTargetDataSource" ref="zxw_DataSource"/>

</bean>

<bean id="zxw_DataSource" parent="parentDataSource">

<!-- 设置JDBC驱动名称 -->

<property name="driverClassName" value="oraclejdbcdriverOracleDriver" />

<!-- 设置JDBC连接URL -->

<property name="url" value="jdbc:oracle:thin:@148202017:1521:oradb" />

<!-- 设置数据库用户名 -->

<property name="username" value="zhou" />

<!-- 设置数据库密码 -->

<property name="password" value="zhou" />

</bean>

<!-- #################### 新备份 ################ -->

<bean id="new_back_DataSource" parent="parentDataSource">

<!-- 设置JDBC驱动名称 -->

<property name="driverClassName" value="oraclejdbcdriverOracleDriver" />

<!-- 设置JDBC连接URL -->

<property name="url" value="jdbc:oracle:thin:@148202015:1521:ora10" />

<!-- 设置数据库用户名 -->

<property name="username" value="report" />

<!-- 设置数据库密码 -->

<property name="password" value="report" />

</bean>

<!-- #################### 新备份 ################ -->

DynamicDataSource java:

public class DynamicDataSource extends AbstractRoutingDataSource {

protected Object determineCurrentLookupKey() {

// TODO Auto-generated method stub

return CustomerContextHoldergetCustomerType();

}

}

CustomerContextHolder java:

public class CustomerContextHolder {

private static final ThreadLocal contextHolder =

new ThreadLocal();

public static void setCustomerType(String customerType) {

contextHolderset(customerType);

}

public static String getCustomerType() {

return (String) contextHolderget();

}

public static void clearCustomerType() {

contextHolderremove();

}

}

action中调用

public class ZzhAction {

@Resource

private ZzhService zzhService;

@RequestMapping("/zzh/testdo")

public void test(){

List<Zzh> zzhs=zzhServicegetAll();

Systemoutprintln(zzhssize());

//设置数据源, 参数为配置文件中的

//<entry key="new_back" value-ref="new_back_DataSource"/> 的key

CustomerContextHoldersetCustomerType("new_back");

}

}

Spring配置DAO层,可以直接在applicationContext-dbxml进行配置,示例如下:

两个DAO的定义,通常声明DAO的时候,都是用接口来声明来使spring注入

<bean id="txn1001BO" name="txn1001BO" class="dapservicebovalidateimplAuthReqBOImpl" scope="prototype">

<property name="commonOnlDAO" ref="commonOnlDAO"/>

<property name="commonHisDAO" ref="commonHisDAO"/>定义bo层的 *** 作时,需要注入的DAO定义

</bean>

以上就是关于java web项目中hibernate +spring +tomcat如何实现多数据库全部的内容,包括:java web项目中hibernate +spring +tomcat如何实现多数据库、java---ssh---spring配置文件里的dao配置问题、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9736039.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存