1. required jars:
spring-aop-3.2.6.RELEASE.jar, spring-beans-3.2.6.RELEASE.jar, spring-context-3.2.6.RELEASE.jar, spring-context-support-3.2.6.RELEASE.jar, spring-core-3.2.6.RELEASE.jar, spring-expression-3.2.6.RELEASE.jar, spring-orm-3.2.6.RELEASE.jar, spring-tx-3.2.6.RELEASE.jar, spring-web-3.2.6.RELEASE.jar, spring-webmvc-3.2.6.RELEASE.jar, hibernate3-3.1.2.jar, spring-hibernate3-2.0.8.jar, jta-1.0.1B.jar, ehcache-2.9.0.jar, spring-orm-3.2.6.RELEASE.jar, antlr-3.1.3.jar, asm-3.3.1.jar, aspectjweaver-1.6.8.jar, cglib-2.2.2.jar
2. web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:/applicationConect.xml
</param-value>
</context-param>
3. applicationConect.xml
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"
scope="singleton">
<property name="jndiName" value="jdbc/test" />
<property name="resourceRef" value="true" />
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>test.hbm.xml</value>
</list>
</property>
</bean>
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="testDao" class="com.zms.testDao">
<property name="hibernateTemplate" ref="hibernateTemplate"/>
</bean>
<!--事务-->
<bean id="hbmManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<tx:advice id="txHBMAdvice" transaction-manager="hbmManager">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED"/>
<tx:method name="delete*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="insert*" propagation="REQUIRED"/>
<tx:method name="save*" propagation="REQUIRED"/>
<tx:method name="*" read-only="true" propagation="SUPPORTS"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:advisor
pointcut="execution(* com.zms.service..*.*.*(..))"
advice-ref="txHBMAdvice"/>
</aop:config>
4. test.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>
<class name="com.zms.Test" table="test">
<id name="testId" column="test_id">
<generator class="assigned" /> //assigned->用表字段test_id作为key, java代码中一定要为Test bean 属性testId设值, i.e. test.setTestId("12333")
</id>
<property name="createDate" column="created_dt" />
<property name="createBy" column="created_by" />
<property name="updateDate" column="updated_dt" />
<property name="updateBy" column="updated_by" />
</class>
</hibernate-mapping>
5. TestDAO.java
public class TestDAO extends HibernateDaoSupport {
public List getAll() {
List<Test> testList= null;
try{
testList= this.getHibernateTemplate().find("from Test a ");
}catch(Exception e){
e.printStackTrace();
}
return testList;
}
public Test getById(String testId) {
Test test= null;
try{
test= this.getHibernateTemplate().find("from Test a where a.test_id = ? ", testId);
}catch(Exception e){
e.printStackTrace();
}
return test;
}
public void insert(Test test) {
this.getHibernateTemplate().save(test);
}
public void delete(Test test) {
this.getHibernateTemplate().delete(test);
}
}
6.Test.java
public class Test{
// prikey
private String testId;
private Timestamp createDate;
private String createBy;
private Timestamp updateDate;
private String updateBy;
public String getTestId() {
return testId;
}
public void setTestId(String testId) {
this.testId= testId;
}
public Timestamp getCreateDate() {
return createDate;
}
public void setCreateDate(Timestamp createDate) {
this.createDate = createDate;
}
public String getCreateBy() {
return createBy;
}
public void setCreateBy(String createBy) {
this.createBy = createBy;
}
public Timestamp getUpdateDate() {
return updateDate;
}
public void setUpdateDate(Timestamp updateDate) {
this.updateDate = updateDate;
}
public String getUpdateBy() {
return updateBy;
}
public void setUpdateBy(String updateBy) {
this.updateBy = updateBy;
}
}