spring3.1 + hibernate4.1 + struts2.3整合,dao层该怎么写
1个回答
展开全部
// 让你的Dao继承这个DaoSupport
// 注意:
// 1、需要Spring注入sessionFactory
// 2、需要Spring声明式事物
// 3、有其他问题email我,fuhaiwei@126.com
package com.fuhaiwei.dao;
import static org.hibernate.criterion.Restrictions.eq;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
public class DaoSupport {
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
protected Session getSession() {
return sessionFactory.getCurrentSession();
}
protected void save(Object obj) {
getSession().save(obj);
}
protected <T> T get(Class<T> clazz, int id) {
return (T) getSession().get(clazz, id);
}
protected <T> List<T> findByProperty(Class<T> clazz, String property, Object value) {
return getSession().createCriteria(clazz).add(eq(property, value)).list();
}
protected <T> List<T> findAll(Class<T> clazz) {
return getSession().createCriteria(clazz).list();
}
protected void update(Object obj) {
getSession().update(obj);
}
protected void delete(Class clazz, int id) {
getSession().delete(get(clazz, id));
}
protected void delete(Object obj) {
getSession().delete(obj);
}
}
// 注意:
// 1、需要Spring注入sessionFactory
// 2、需要Spring声明式事物
// 3、有其他问题email我,fuhaiwei@126.com
package com.fuhaiwei.dao;
import static org.hibernate.criterion.Restrictions.eq;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
public class DaoSupport {
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
protected Session getSession() {
return sessionFactory.getCurrentSession();
}
protected void save(Object obj) {
getSession().save(obj);
}
protected <T> T get(Class<T> clazz, int id) {
return (T) getSession().get(clazz, id);
}
protected <T> List<T> findByProperty(Class<T> clazz, String property, Object value) {
return getSession().createCriteria(clazz).add(eq(property, value)).list();
}
protected <T> List<T> findAll(Class<T> clazz) {
return getSession().createCriteria(clazz).list();
}
protected void update(Object obj) {
getSession().update(obj);
}
protected void delete(Class clazz, int id) {
getSession().delete(get(clazz, id));
}
protected void delete(Object obj) {
getSession().delete(obj);
}
}
追问
是不是没有HibernateTemplate呢?JdbcTemplate是否还能继续使用
追答
从hibernate4开始,就不能使用HibernateTemplate了,因为Hibernate Session已经很好用了。可以直接使用Hibernate Session。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询