基于前面一篇blog文档《tomcat6.0+struts2.2.1+spring2.5.6+ibatis2.3.4+mysql5.1最简开发环境配置及样例开发》,可将ibatis2.3.4轻易地换成hibernate3。
一、spring集成hibernate3配置
1、下载hibernate3的jar包,官方下载地址:http://sourceforge.net/projects/hibernate/files/hibernate3/,最好下3.1以后的版本。
2、下载后解压缩在lib目录下获取hibernate3.jar以及lib/required目录下的所有jar包,拷贝到test工程的WEB-INF/lib目录下;
3、我用的hibernate3.3.1.GA版本好像少了slf4j-jcl-1.5.2.jar包,可到slf4j官方网下载:http://www.slf4j.org/dist/
4、工程applicationContext.xml配置文件配置内容(主要就是配置sessionFactory):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/mysqlDBConPool" />
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>user.hbm.xml</value>
</list>
</property>
</bean>
<bean id="demoDao" class="DemoDaoImpl">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
<bean id="demoAction" class="DemoAction">
<property name="demoDao" ref="demoDao" />
</bean>
</beans>
二、Demo样例开发
1、新增user.hbm.xml配置文件(与上面applicationContext.xml中配置的文件名一致),配置内容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="User" table="user">
<id name="id" column="id" type="java.lang.String">
<generator class="assigned" />
</id>
<property name="name" type="java.lang.String" column="name" />
</class>
</hibernate-mapping>
2、DemoDaoImpl实现类代码:
public class DemoDaoImpl extends HibernateDaoSupport implements DemoDao
{
public User queryUser(User user)
{
return (User)getHibernateTemplate().get("User", user.getId());
}
}