ssh框架中,hibernate配置多个数据源的报表模块


    使用hibernate配置多个数据源的话很简单,就和配置第一个数据源一样。值得注意的是调用不同的数据源,sessionFactory的注入得不同;

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName" value="${jdbc.driverClassName}">
		</property>
		<property name="url" value="${jdbc.url}"></property>
		<property name="username" value="${jdbc.username}"></property>
		<property name="password" value="${jdbc.password}"></property>
		<property name="maxActive" value="${jdbc.maxActive}"></property>
	</bean>



	<!-- Spring自动创建hibernate的SessionFactory -->
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
		<property name="dataSource" ref="dataSource">
		</property>
		
		<!-- 映射所有实体 -->
		<property name="packagesToScan">
			<list>
				<value>com.yojosources.admin.po</value>
				<value>com.yojosources.business.po</value>
				<value>com.yojosources.member.po</value>
				<value>com.yojosources.privilege.po</value>
			</list>
		</property>

		<property name="hibernateProperties">

			<props>
				<prop key="javax.persistence.validation.mode">none</prop>
				<prop key="hibernate.dialect">${hibernate.dialect}</prop>

				<prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>

				<!-- 输出所有SQL语句到控制台 -->
				<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>

				<!-- 在log和console中打印出更漂亮的SQL -->
				<prop key="hibernate.format_sql">${hibernate.format_sql}</prop>


				<!-- 允许被缓存的JDBC 连接开启自动提交 -->
				<prop key="hibernate.connection.autocommit">${hibernate.connection.autocommit}</prop>

				<!-- 强制Hibernate按照被更新数据的主键,为SQL更新排序。 -->
				<prop key="hibernate.order_updates">${hibernate.order_updates}</prop>

				<!-- 允许Hibernate使用JDBC2的可滚动结果集。 -->
				<prop key="hibernate.jdbc.use_scrollable_resultset">${hibernate.jdbc.use_scrollable_resultset}</prop>


				<!-- hibernate将在SQL中生成有助于调式的注解信息 -->
				<prop key="hibernate.use_sql_comments">${hibernate.use_sql_comments}</prop>

				<!-- 指定Hibernate在何时释放 JDBC 连接 -->
				<prop key="hibernate.connection.release_mode">${hibernate.connection.release_mode}</prop>

				<!-- 同一个事务用一个session -->
<!--				<prop key="hibernate.current_session_context_class">${hibernate.current_session_context_class}</prop>-->

			</props>
		</property>

	</bean>
	
	
	<bean id="lotDataSource" class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName" value="${jdbc2.driverClassName}">
		</property>
		<property name="url" value="${jdbc2.url}"></property>
		<property name="username" value="${jdbc2.username}"></property>
		<property name="password" value="${jdbc2.password}"></property>
		<property name="maxActive" value="${jdbc2.maxActive}"></property>
	</bean>
		<!-- Spring自动创建hibernate的SessionFactory -->
	<bean id="lotSessionFactory"
		class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
		<property name="dataSource" ref="lotDataSource">
		</property>
		<property name="hibernateProperties">

			<props>
				<prop key="javax.persistence.validation.mode">none</prop>
				<prop key="hibernate.dialect">${hibernate.dialect}</prop>

				<prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>

				<!-- 输出所有SQL语句到控制台 -->
				<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>

				<!-- 在log和console中打印出更漂亮的SQL -->
				<prop key="hibernate.format_sql">${hibernate.format_sql}</prop>


				<!-- 允许被缓存的JDBC 连接开启自动提交 -->
				<prop key="hibernate.connection.autocommit">${hibernate.connection.autocommit}</prop>

				<!-- 强制Hibernate按照被更新数据的主键,为SQL更新排序。 -->
				<prop key="hibernate.order_updates">${hibernate.order_updates}</prop>

				<!-- 允许Hibernate使用JDBC2的可滚动结果集。 -->
				<prop key="hibernate.jdbc.use_scrollable_resultset">${hibernate.jdbc.use_scrollable_resultset}</prop>


				<!-- hibernate将在SQL中生成有助于调式的注解信息 -->
				<prop key="hibernate.use_sql_comments">${hibernate.use_sql_comments}</prop>

				<!-- 指定Hibernate在何时释放 JDBC 连接 -->
				<prop key="hibernate.connection.release_mode">${hibernate.connection.release_mode}</prop>

				<!-- 同一个事务用一个session -->
<!--				<prop key="hibernate.current_session_context_class">${hibernate.current_session_context_class}</prop>-->

			</props>
		</property>

	</bean>
	
dao的注入

 @Resource(name="lotSessionFactory")
    public void setSessionFactory(SessionFactory sessionFactory) {
        this.sessionFactory = sessionFactory;
    }

@Resource
	protected SessionFactory sessionFactory;

	public SessionFactory getSessionFactory() {
		return sessionFactory;
	}

现在说说调用多个数据源报表模块吧,
  记录总数   符合条件的所有数据源的和

  查询当页记录的话: 根据页面大小和页面索引,确定要查找哪些数据源,每个数据源要查找多少条数据

                                     再依次调用。


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值