Spring+Hibernate多数据源配置
来源:互联网 发布:淘宝网店实名认证照片 编辑:程序博客网 时间:2024/04/25 02:56
数据源1
<bean id="dataSource"class="com.mchange.v2.c3p0.ComboPooledDataSource"destroy-method="close"><!-- 连接信息 --><property name="driverClass"value="${driverClass}"></property><property name="jdbcUrl"value="${jdbcUrl}"></property><property name="user" value="${user}"></property><property name="password" value="${password}"></property></bean>
数据源2
<bean id="dataSourceB"class="com.mchange.v2.c3p0.ComboPooledDataSource"destroy-method="close"><!-- 连接信息 --><property name="driverClass"value="${driverClass}"></property><property name="jdbcUrl"value="${jdbcUrl2}"></property><property name="user" value="${user}"></property><property name="password" value="${password}"></property></bean>sessionFactory1
<bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="dataSource"><ref bean="dataSource" /></property><property name="hibernateProperties"><props><prop key="hibernate.dialect"><!-- SQLServerDialect MySQLDialect -->org.hibernate.dialect.SQLServerDialect</prop><!-- 显示sql语句 --><prop key="show_sql">true</prop><!-- 自动建表<prop key="hibernate.hbm2ddl.auto">update</prop> --></props></property><property name="mappingResources"><list><!-- 用户 --><value>com/hhit/entity/User.hbm.xml</value><span style="white-space:pre"></span></list></property></bean>
sessionFactory2
<bean id="sessionFactory2"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="dataSource"><ref bean="dataSourceB" /></property><property name="hibernateProperties"><props><prop key="hibernate.dialect"><!-- SQLServerDialect MySQLDialect -->org.hibernate.dialect.SQLServerDialect</prop><!-- 显示sql语句 --><prop key="show_sql">true</prop><!-- 自动建表<prop key="hibernate.hbm2ddl.auto">update</prop> --></props></property><property name="mappingResources"><list><!-- 考试监控系统--><value>com/hhit/entity/TestingControl.hbm.xml</value><value>com/hhit/entity/TestRoom.hbm.xml</value></list></property></bean>
DaoSupportImpl
public class DaoSupportImpl<T> implements IDaoSupport<T> {@Resourceprivate SessionFactory sessionFactory;private Class<T> clazz;public DaoSupportImpl(){//使用反射得到T的真实类型//获取new的对象的泛型的父类类型ParameterizedType pt= (ParameterizedType) this.getClass().getGenericSuperclass();//获取第一个类型的真实类型this.clazz=(Class<T>) pt.getActualTypeArguments()[0];System.out.println("--->clazz"+clazz);}/** * 获取当前Session对象 * protected子类中可以得到 * @return */protected Session getSession(){//if(sessionFactory.getCurrentSession()==null)//return sessionFactory.openSession();return sessionFactory.getCurrentSession();}@Overridepublic void save(T entity) {getSession().save(entity);}}
DaoSupportImpl2
public class DaoSupportImpl2<T> implements IDaoSupport<T> {@Resource(name="sessionFactory2")private SessionFactory sessionFactory2;private Class<T> clazz;public DaoSupportImpl2(){//使用反射得到T的真实类型//获取new的对象的泛型的父类类型ParameterizedType pt= (ParameterizedType) this.getClass().getGenericSuperclass();//获取第一个类型的真实类型this.clazz=(Class<T>) pt.getActualTypeArguments()[0];System.out.println("--->clazz"+clazz);}/** * 获取当前Session对象 * protected子类中可以得到 * @return */protected Session getSession(){//if(sessionFactory.getCurrentSession()==null)//return sessionFactory.openSession();return sessionFactory2.getCurrentSession();}@Overridepublic void save(T entity) {getSession().save(entity);}}
这种做法的关键是在basedao,也就是我的DaoSupportImpl中定义的private SessionFactory sessionFactory;和DaoSupportImpl2中定义的private SessionFactory sessionFactory2;用注解让sessionfactory按照名称注入,与spring配置文件中的sessionfactory名称相对应,然后不同数据源的dao继承不同的DaoSupportImpl。当然,其中DaoSupportImpl使用了匿名类。
0 0
- spring hibernate 多数据源的配置
- Spring+Hibernate配置多数据源
- Spring+Hibernate配置多数据源
- spring 与hibernate多数据源配置
- Spring + hibernate 多数据源配置
- Spring+hibernate 配置多数据源
- Spring+Hibernate配置多数据源
- Spring+Hibernate配置多数据源
- Spring+Hibernate多数据源配置
- Spring+Hibernate配置多数据源
- Spring+Hibernate多数据源
- Hibernate 与 Spring 多数据源的配置
- Hibernate 与 Spring 多数据源的配置
- Hibernate 与 Spring 多数据源的配置
- Hibernate与Spring多数据源的配置
- Hibernate 与 Spring 多数据源的配置
- Hibernate 与 Spring 多数据源的配置
- Hibernate 与 Spring 多数据源的配置
- echo命令的-n、-e两个参数
- 【java并发】传统线程技术中创建线程的两种方式
- 数据结构实验之二叉树二:遍历二叉树
- assign weak retain strong copy关键字的区别
- UVA 11183 Teen Girl Squad(最小树形图裸题)
- Spring+Hibernate多数据源配置
- 【C语言】有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student"
- 静态顺序表的实现创建、查找、删除
- MyEclipse 2014 破解图文详细教程
- Android基础---shape、selector、layer-list
- 谈谈演讲 - 演讲内容的准备
- Linux 内存使用方法详细解析
- Apache Zeppelin使用入门指南:安装
- 【MFC】基于OpenCV的魔镜