<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
<property name="location" value="/WEB-INF/classes/jdbc.properties" />
</bean>  <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >
<property name="driverClassName" value="${jdbc.s1.driverClassName}" />
<property name="url" value="${jdbc.s1.url}" />
<property name="username" value="${jdbc.s1.username}" />
<property name="password" value="${jdbc.s1.password}" />
</bean> 

<bean id="dataSource2" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >
<property name="driverClassName" value="${jdbc.s2.driverClassName}" />
<property name="url" value="${jdbc.s2.url}" />
<property name="username" value="${jdbc.s2.username}" />
<property name="password" value="${jdbc.s2.password}" />
</bean> 

<bean id="dataSource3" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >
<property name="driverClassName" value="${jdbc.s3.driverClassName}" />
<property name="url" value="${jdbc.s3.url}" />
<property name="username" value="${jdbc.s3.username}" />
<property name="password" value="${jdbc.s3.password}" />
</bean> 

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" destroy-method="close">
<property name="dataSource">
<ref bean="dataSource"/>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.SQLServerDialect
</prop>
<!--输出所有SQL语句到控制台  -->
<prop key="hibernate.show_sql">true</prop>
<!--在log和console中打印出更漂亮的SQL-->
<prop key="hibernate.format_sql">true </prop>
<!--Hibernate将在SQL中生成有助于调试的注释信息, 默认值为false.取值 true | false -->
<prop key="hibernate.use_sql_comments">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.jdbc.batch_size">20</prop>
<!--解决weblogic无法使用hql的问题  -->
<prop key="hibernate.cglib.use_reflection_optimizer">true</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>../classes/visitors.hbm.xml</value>
<value>../classes/hbxf/userinfo.hbm.xml</value>
<value>../classes/free.naming-sql.xml</value>
</list>
</property>
</bean>

 <bean id="sessionFactory2" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" destroy-method="close">
<property name="dataSource2">
<ref bean="dataSource2"/>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.SQLServerDialect
</prop>
<!--输出所有SQL语句到控制台  -->
<prop key="hibernate.show_sql">true</prop>
<!--在log和console中打印出更漂亮的SQL-->
<prop key="hibernate.format_sql">true </prop>
<!--Hibernate将在SQL中生成有助于调试的注释信息, 默认值为false.取值 true | false -->
<prop key="hibernate.use_sql_comments">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.jdbc.batch_size">20</prop>
<!--解决weblogic无法使用hql的问题  -->
<prop key="hibernate.cglib.use_reflection_optimizer">true</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>../classes/out.hbm.xml</value>
</list>
</property>
</bean>

 
</beans>
同时连接两个数据库这样写对吗 报这个错不知道为什么
Error creating bean with name 'sessionFactory2' defined in ServletContext resource [/WEB-INF/conf/global.datasource.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'dataSource2' of bean class [org.springframework.orm.hibernate3.LocalSessionFactoryBean]: Bean property 'dataSource2' is not writable or has an invalid setter method. Did you mean 'dataSource'?

解决方案 »

  1.   

    spring的LocalSessionFactoryBean这个类里面关于数据库的那个属性名字是dataSource而不是dataSource2,其实property的属性不用改,把ref的改成dataSource2就可以了
      

  2.   

    <bean id="sessionFactory2" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" destroy-method="close">        
            <property name="dataSource2">
                <ref bean="dataSource2"/>
            </property>   <property name="dataSource2">
    就像一楼说的,这里面的 dataSource 是给定的
    所以应改为
    <property name="dataSource">
                <ref bean="dataSource2"/>
            </property>