spring 是一个很强大的框架,可以完成很多的任务,这公司这次项目中,我使用到了spring的数据源配置,定时调度任务,事务处理等
我会在使用相关的文章来阐述这些使用了,也相当于总结一下!
这篇文章我将讲解spring管理hibernate多数据源的配置。
我们先来看看spring的applicationContext.xml配置文件
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:datasource.properties</value>
</list>
</property>
</bean>
<!-- 中间表的数据源-->
<bean id="dataSourceMysql" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<property name="initialSize" value="${pool.initialSize}" />
<property name="maxActive" value="${pool.maxActive}" />
<property name="maxIdle" value="${pool.maxIdle}" />
<property name="maxWait" value="${pool.maxWait}" />
<property name="poolPreparedStatements" value="${pool.poolPreparedStatements}" />
<property name="defaultAutoCommit" value="${pool.defaultAutoCommit}" />
</bean>
<bean id="sessionFactoryMysql" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSourceMysql"/>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
${hibernate.dialectMysql}
</prop>
<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
<prop key="hibernate.format_sql">${hibernate.format_sql}</prop>
<prop key="hibernate.use_sql_comments">${hibernate.use_sql_comments}</prop>
<prop key="hibernate.cache.provider_class">${hibernate.cache.provider_class}</prop>
<prop key="hibernate.cache.use_query_cache">${hibernate.cache.use_query_cache}</prop>
<prop key="hibernate.cache.provider_configuration_file_resource_path">${hibernate.ehcache_config_file}</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/mytest/bean/Incident.hbm.xml</value>
</list>
</property>
</bean>
<!-- itsm -->
<bean id="dataSourceItsm" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${itsm.driverClassName}"/>
<property name="url" value="${itsm.url}"/>
<property name="username" value="${itsm.username}"/>
<property name="password" value="${itsm.password}"/>
<property name="initialSize" value="${pool.initialSize}" />
<property name="maxActive" value="${pool.maxActive}" />
<property name="maxIdle" value="${pool.maxIdle}" />
<property name="maxWait" value="${pool.maxWait}" />
<property name="poolPreparedStatements" value="${pool.poolPreparedStatements}" />
<property name="defaultAutoCommit" value="${pool.defaultAutoCommit}" />
</bean>
<bean id="sessionFactoryItsm" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSourceItsm"/>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
${hibernate.dialect}
</prop>
<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
<prop key="hibernate.format_sql">${hibernate.format_sql}</prop>
<prop key="hibernate.use_sql_comments">${hibernate.use_sql_comments}</prop>
<prop key="hibernate.cache.provider_class">${hibernate.cache.provider_class}</prop>
<prop key="hibernate.cache.use_query_cache">${hibernate.cache.use_query_cache}</prop>
<prop key="hibernate.cache.provider_configuration_file_resource_path">${hibernate.ehcache_config_file}</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/mytest/bean/Incident.hbm.xml</value>
</list>
</property>
</bean>
上面使用了PropertyPlaceHolderConfigurer ,这个类可以使spring的配置文件的数据来动态获取,如:<property name="driverClassName" value="${jdbc.driverClassName}"/>其中jdbc.driverClassName的值从哪来的呢?
它定义在 datasource.properties中各文件中,它的内容为:
## JDBC Mysql properties
jdbc.datasourceName=itsm
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/itsm
jdbc.username=root
jdbc.password=fansichi
## ITSM JDBC properties
itsm.datasourceName=ITSM
itsm.driverClassName=com.microsoft.jdbc.sqlserver.SQLServerDriver
itsm.url=jdbc:microsoft:sqlserver://192.168.0.91:1433;DatabaseName=Test
itsm.username=sa
itsm.password=sa
#pool properties
pool.initialSize=5
pool.maxActive=100
pool.maxIdle=30
pool.maxWait=1000
pool.poolPreparedStatements=true
pool.defaultAutoCommit=false
## Hibernate properties
hibernate.dialectMysql=org.hibernate.dialect.MySQLDialect
hibernate.dialect=org.hibernate.dialect.SQLServerDialect
hibernate.show_sql=true
hibernate.format_sql=true
hibernate.use_sql_comments=true
hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider
hibernate.cache.use_query_cache=true;
hibernate.ehcache_config_file=/ehcache/ehcache-hibernate-local.xml
上面其他的的属性的值 也是通过这种方式获取的
上面配置了两个datasource:datasourceMysql和datasourceItsm 她们对应的sessionFactory 分别是:sessionFactoryMysql 和sessionFactoryItsm,记住一点这spring中是不应许bean的id值相同的,所以我们起了两个不同的名字来命名这两个sessionFactory.
有了sessionFactory我们就可以注入到继承了HibernateTemplate类的dao类,就可以完成数据库相关的操作了。
分享到:
相关推荐
Spring+Hibernate多数据源的整合实现demo
spring boot 2多数据源,里面有hibernate和mybatis的多数据源代码。代码拿过去即可集成使用。
实现了spring3+springmvc+jpa2.0之间的集成,采用多数据源实现jpa,本例子提供的数据源为hibernate何datastore,为需要的朋友省去搭建框架的时间
springboot2.0多数据源集成hibernate配置hibernateDaoSupport, dao层继承hibernateDaoSupport, 不使用jpa方式。
该配置文件连接的是两个数据库结构相同的数据源,其他比如数据库结构不原理也可行。本人在遇到此问题时上网搜了很多答案结果都不怎么如意,有的太深奥不过思想很好,有的又太不给力,后来自己慢慢研究配置成功后想与...
spring+hibernate解决多数据源问题3.pdf
spring 集成hibernate实现多数据的动态切换功能,有详细的代码 可以参考 基于maven工程
spring 3.2+ hibernate 3.* +atomikos3.9 配置多数据源 包含所有jar包和源代码,完整项目
Spring多数据源配置_分布式数据 Tomcat服务器下的多数据源配置详情 一、环境及框架 Tomcat+spring+hibernate+jotm,还有就是struts、Oracle等 二、需求说明 系统里有2套不同网域的oracle数据库,之间的数据需要进行...
多数据源配置demo,配置Spring+Hibernate多数据源整合,
spring+hibernate+atomikos实现多数据源分布式事务管理
spring+jotm 多数据源事务管理(二)hibernate 使用hibernate关联jotm也很方便,先看一个没有使用jotm的例子:
strut+spring+hibernate注册登录系统,包括管理员登录,管理员对普通用户的增删改查;用户的注册,登录!对初学SSH框架的有很大的帮助!
spring3+hibernate4+maven+junit 多库多数据源实现,非常好的一个学习多数据分点管理,分别连接不同类型数据源的方法
Spring boot+Atomikos+JTA+Hibernate+MySQL实现分布式事务+多数据源,分别向两个不同的数据里面插入数据同时失败和成功,调用接口方式原理一样。
在spring+hibernate的框架中定时操作数据库,主要是拿到sessionFactory,不会出现no session 和transaction no-bound等问题,由sessionFactory完成对数据的操作,有些包是没有用的,有兴趣的可以自己删除掉
这是本人上课过程中为学生讲解hibernate、spring和mysql开发简单项目的截图汇集,大家需要先自己完成数据库以及JDBC数据源的配置,之后按照该截图的顺序就能完成一个最简单的支持数据库事务处理的SH系统,(如果使用...
(1)该项目是基于spring3+struts2+hibernate3+spring security3的权限管理项目 (2)后台我已经实现了权限管理,包括用户,角色和资源的分配。前台实现了spring security3的管理 (3)网上案例普遍是后台单一登陆。...
用于spring+hibernate整合所需要的全部jar包,还附有c3p0,mysql jar包,方便网友编写项目找出相应的jar包文件。
项目描述 辅助业务人员对工程财务状况...2.spring中关于DataSource的配置,需要在tomcat的conf/context.xml中添加数据源 3.PaymentServiceImpl.java中有个import错误 4.FMS.sql数据库文件较大,导入时间较长,请耐心