在spring中使用Hibernate是平时项目中很常用的做法,下面就具体步骤进行:
项目的结构如下
一、加入框架的支持:
首先,先加入Sping的支持,再加入HIbernate的支持,顺序不能反,因为我们要不Hibernate相关的配置写到applicationContext.xml中
二、在applicationContext.xml中配置数据源
applicationContext.xml
<context:property-placeholder location="jdbc.properties"/>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
三、配置SessionFactory bean
applicationContext.xml
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource"/>
</property>
<property name="annotatedClasses">
<list>
<value>com.spr.vo.Students</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dalect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
</bean>
注意:在
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
中class属性,如果使用的是hibernate3的框架,class为“org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean”;如果使用的是hibernate4,class为“org.springframework.orm.hibernate4.LocalSessionFactoryBean“
四、在程序中加入SessionFactory属性,生成set/get方法,并用spring为其注入属性
StudentsDAOImpl.java
package com.spr.dao;
import javax.annotation.Resource;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.stereotype.Component;
import com.spr.vo.Students;
@Component("studentsDAOImpl")
public class StudentsDAOImpl implements StudentsDAO{
@Resource
private SessionFactory sessionFactory;
@Override
public boolean saveStudents(Students s) {
// TODO Auto-generated method stub
if(s != null){
Session session = sessionFactory.openSession();
session.save(s);
return true;
}
else{
return false;
}
}
public SessionFactory getSessionFactory() {
return sessionFactory;
}
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
}
这里提供代码下载 点击打开链接