1. applicationContext.xml文件
<?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">
<!-- //用这个代替下面的sessionFactory会更好, dataSource不用定义了,因为hibernate.cfg.xml中已经定义了C3P0数据源
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation"
value="classpath:hibernate.cfg.xml">
</property>
</bean>
-->
<!-- 定义数据源Bean,使用C3P0数据源实现 -->
<bean id="dataSource"
class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<!-- 指定连接数据库的驱动 -->
<property name="driverClass"
value="oracle.jdbc.driver.OracleDriver" />
<!-- 指定连接数据库的URL -->
<property name="jdbcUrl"
value="jdbc:oracle:thin:@192.168.36.11:1521:myproject" />
<!-- 指定连接数据库的用户名 -->
<property name="user" value="test" />
<!-- 指定连接数据库的密码 -->
<property name="password" value="test" />
<!-- 指定连接数据库连接池的最大连接数 -->
<property name="maxPoolSize" value="40" />
<!-- 指定连接数据库连接池的最小连接数 -->
<property name="minPoolSize" value="1" />
<!-- 指定连接数据库连接池的初始化连接数 -->
<property name="initialPoolSize" value="1" />
<!-- 指定连接数据库连接池的连接的最大空闲时间 -->
<property name="maxIdleTime" value="20" />
</bean>
<!-- 配置SessionFactory -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.Oracle9Dialect
</prop>
<prop key="hibernate.show_sql">true</prop>
<!-- 使用c3p0连接池 -->
<prop key="hibernate.connection.provider_class">
org.hibernate.connection.C3P0ConnectionProvider
</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>
com/happy/ssh/mapping/AdminMessage.hbm.xml
</value>
</list>
</property>
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean>
<!-- 配置TransactionManager -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!-- 配置事务拦截器 -->
<bean id="transactionInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<!-- 事务拦截器bean需要依赖注入一个事务管理器 -->
<property name="transactionManager" ref="transactionManager" />
<property name="transactionAttributes">
<!-- 下面定义事务传播属性-->
<props>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<!-- Dao定义 -->
<bean id="adminMessageDao"
class="com.happy.ssh.dao.AdminMessageDao">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!-- 定义BeanNameAutoProxyCreator创建代理( 注意: 可以定义多个BeanNameAutoProxyCreator)-->
<bean
class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<!-- 指定对满足哪些bean name的bean自动生成业务代理 -->
<property name="beanNames">
<!-- 下面是所有需要自动创建事务代理的bean,如*Dao,*Service等,-->
<list>
<value></value>
</list>
<!-- 此处可增加其他需要自动创建事务代理的bean-->
</property>
<!-- 下面定义BeanNameAutoProxyCreator所需的事务拦截器-->
<property name="interceptorNames">
<list>
<value>transactionInterceptor</value>
<!-- 此处可增加其他新的Interceptor -->
</list>
</property>
</bean>
</beans>
2、hibernate.cfg.xml文件
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>
<session-factory>
<!-- 指定连接数据库的驱动 -->
<property name="connection.driver_class">
oracle.jdbc.driver.OracleDriver
</property>
<!-- 指定连接数据库的URL -->
<property name="connection.url">
jdbc:oracle:thin:@192.168.36.11:1521:myproject
</property>
<!-- 指定连接数据库的用户名 -->
<property name="connection.username">test</property>
<!-- 指定连接数据库的密码 -->
<property name="connection.password">test</property>
<!-- 指定连接数据库的方言 -->
<property name="dialect">
org.hibernate.dialect.Oracle9Dialect
</property>
<property name="format_sql">true</property>
<!-- 输出调试语句 -->
<property name="show_sql">true</property>
<!-- 指定连接数据库连接池的最大连接数 -->
<property name="c3p0.max_size">40</property>
<!-- 指定连接数据库连接池的最小连接数 -->
<property name="c3p0.min_size">1</property>
<mapping resource="com/happy/ssh/mapping/AdminMessage.hbm.xml"/>
</session-factory>
</hibernate-configuration>
3. AdminMessage.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.hc360.model.domain">
<class name="Role" table="SS_ROLES" dynamic-insert="true" dynamic-update="true">
<id name="id" column="ID">
<generator class="native"/>
</id>
<property name="name" column="NAME" not-null="true"/>
<property name="descn" column="DESCN"/>
<!--
<set name="users" table="SS_USER_ROLE" lazy="true" inverse="true" cascade="save-update" batch-size="5">
<key>
<column name="ROLE_ID" not-null="true"/>
</key>
<many-to-many class="User" column="USER_ID" outer-join="auto"/>
</set>
-->
</class>
</hibernate-mapping>