spring管理hibernate多数据源的配置
spring 是一个很强大的框架,可以完成很多的任务,这公司这次项目中,我使用到了spring的数据源配置,定时调度任务,事务处理等
??? 我会在使用相关的文章来阐述这些使用了,也相当于总结一下!
??? 这篇文章我将讲解spring管理hibernate多数据源的配置。
??? 我们先来看看spring的applicationContext.xml配置文件
?
<bean 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" 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" value="${jdbc.driverClassName}"/>其中jdbc.driverClassName的值从哪来的呢?它定义在 datasource.properties中各文件中,它的内容为:
?
## JDBC Mysql propertiesjdbc.datasourceName=itsmjdbc.driverClassName=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/itsmjdbc.username=rootjdbc.password=fansichi## ITSM JDBC propertiesitsm.datasourceName=ITSMitsm.driverClassName=com.microsoft.jdbc.sqlserver.SQLServerDriveritsm.url=jdbc:microsoft:sqlserver://192.168.0.91:1433;DatabaseName=Testitsm.username=saitsm.password=sa#pool propertiespool.initialSize=5pool.maxActive=100pool.maxIdle=30pool.maxWait=1000pool.poolPreparedStatements=truepool.defaultAutoCommit=false## Hibernate propertieshibernate.dialectMysql=org.hibernate.dialect.MySQLDialecthibernate.dialect=org.hibernate.dialect.SQLServerDialecthibernate.show_sql=truehibernate.format_sql=truehibernate.use_sql_comments=truehibernate.cache.provider_class=org.hibernate.cache.EhCacheProviderhibernate.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类,就可以完成数据库相关的操作了。
?