Hibernate 与 Spring 多数据源的配备【转载】
Hibernate 与 Spring 多数据源的配置【转载】六、配置hibernate。 Hibernate的配置和普通的hibernate、spring结
Hibernate 与 Spring 多数据源的配置【转载】
六、配置hibernate。
Hibernate的配置和普通的hibernate、spring结合的配置一样
代码
<bean?id="sessionFactory"?? ????????class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">?? ????????<!--?to?override,?use?the?"SpringDatasourceConfig"?snippet?in?your?project?-->?? ????????<property?name="dataSource">?? ????????????<ref?local="dataSource"?/>?? ????????</property>?? ????????<property?name="mappingResources">?? ????????????<list>?? ????????????????<value>?? ????????????????????cn/com/xinli/ccp/entity/User.hbm.xml ?? ????????????????</value>?? ????????????????<value>?? ????????????????????cn/com/xinli/ccp/entity/Test.hbm.xml ?? ????????????????</value>?? ????????????</list>?? ????????</property>?? ????????<property?name="hibernateProperties">?? ????????????<props>?? ????????????????<prop?key="hibernate.dialect">?? ????????????????????org.hibernate.dialect.DB2Dialect ?? ????????????????</prop>?? ???????????????? ?? ????????????????<prop?key="hibernate.show_sql">true</prop>?? ????????????????<prop?key="hibernate.use_outer_join">true</prop>?? ????????????????<prop?key="hibernate.jdbc.batch_size">50</prop>?? ????????????????<prop?key="hibernate.jdbc.fetch_size">5</prop>?? ????????????????<prop?key="hibernate.connection.pool_size">2</prop>?? ????????????????<prop?key="hibernate.connection.autocommit">false</prop>?? ????????????????<prop?key="hibernate.cache.use_query_cache">false</prop>?? ????????????????<prop?key="hibernate.max_fetch_depth">1</prop>?? ????????????????<prop?key="hibernate.bytecode.use_reflection_optimizer">true</prop>?? ????????????</props>?? ????????</property>?? ????</bean>?? ?? <bean?id="mydao"?class="cn.com.xinli.ccp.dao.HibernateBaseDao">?? ????????<property?name="sessionFactory">?? ????????????<ref?local="sessionFactory"?/>?? ????????</property>?? ????</bean>??
关于dao的代码这里就省略了。
七、配置结束,可以使用了。
代码
public?class?DaoTest?extends?TestCase?{ ?? ?? ????public?void?testSave()?throws?Exception{ ?? ????????CustomerContextHolder.setCustomerType(DataSourceMap.Admin);//设置数据源 ?? ????????//hibernate创建实体 ?? ????????Test?test?=?new?Test(); ?? ????????test.setTest("22222222"); ?? ???????? ?? ????????mydao.save(test);//使用dao保存实体 ?? ???????? ?? ????????CustomerContextHolder.setCustomerType(DataSourceMap.Yxh);//设置为另一个数据源 ?? ???????? ?? ????????mydao.save(test);//使用dao保存实体到另一个库中 ?? ???????? ?? ????} ?? }??
在项目中对于编码人员对多数据源的切换可以做成透明的,操作同样的dao,就可以访问不同的数据库了。