其他类只要实现借口就可以进行增删改查等操作。
IGenericDao.java
package com.sysmaster.dao; import java.io.Serializable; import java.util.List; public interface IGenericDAO<Obj,Id extends Serializable>{ public boolean addObj(Obj obj); public boolean uptObj(Obj obj); public boolean delObj(Obj obj); public Obj getObj(Id id); public List<Obj> getObjs(String hql); }
GenericDaoImpl.java
package com.sysmaster.dao.impl; import java.io.Serializable; import java.lang.reflect.ParameterizedType; import java.util.List; import javax.annotation.Resource; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.springframework.stereotype.Repository; import com.sysmaster.dao.IGenericDAO; @Repository public abstract class GenericDAOImpl<Obj,Id extends Serializable> implements IGenericDAO<Obj,Id>{ //定义SessionFactory @Resource private SessionFactory sessionFactory; private Class<Obj> clzz; @SuppressWarnings("unchecked") public GenericDAOImpl(){ clzz=(Class<Obj>)((ParameterizedType) this.getClass().getGenericSuperclass()).getActualTypeArguments()[0]; } public boolean addObj(Obj obj) { boolean flag = false; try{ // Session session = sessionFactory.openSession(); Session session = sessionFactory.getCurrentSession(); <span style="color: rgb(50, 62, 50); font-family: simsun; font-size: 14px; line-height: 21px; background-color: rgb(204, 232, 207);">// 打开Sessio</span><span style="color: rgb(50, 62, 50); font-family: simsun; font-size: 14px; line-height: 21px; background-color: rgb(204, 232, 207);">n</span> // session.beginTransaction(); session.persist(obj);//<span style="color: rgb(51, 51, 51); font-family: arial, 'courier new', courier, 宋体, monospace; font-size: 14px; line-height: 24px; white-space: pre-wrap;">persist是插入</span> // session.getTransaction().commit(); // session.close(); flag = true; } catch(Exception e) { e.printStackTrace(); } return flag; } public boolean uptObj(Obj obj) { boolean flag = false; try{ Session session = sessionFactory.getCurrentSession(); // Session session = sessionFactory.openSession(); // session.beginTransaction(); session.update(obj); // session.getTransaction().commit(); // session.close(); flag = true; } catch(Exception e) { e.printStackTrace(); } return flag; } public boolean delObj(Obj obj) { boolean flag = false; try{ // Session session = sessionFactory.openSession(); Session session = sessionFactory.getCurrentSession(); // session.beginTransaction(); session.delete(obj); // session.getTransaction().commit(); // session.close(); flag = true; } catch(Exception e) { e.printStackTrace(); } return flag; } @SuppressWarnings("unchecked") public Obj getObj(Id id) { Obj obj = null; try{ // Session session = sessionFactory.openSession(); Session session = sessionFactory.getCurrentSession(); // session.beginTransaction(); obj = (Obj)session.get(clzz, id); // session.getTransaction().commit(); // session.close(); } catch(Exception e) { e.printStackTrace(); } return obj; } @SuppressWarnings("unchecked") public List<Obj> getObjs(String hql) { List<Obj> objList = null; try{ Session session = sessionFactory.getCurrentSession(); // session.beginTransaction(); Query query = session.createQuery(hql); objList = query.list(); // session.getTransaction().commit(); } catch(Exception e) { e.printStackTrace(); } return objList; } }
People实现上面的接口
IPeopleDao.java
package com.sysmaster.dao; import com.sysmaster.po.People; public interface IPeopleDAO extends IGenericDAO<People,Integer>{ }
PeopleDaoImpl.java
package com.sysmaster.dao.impl; import com.sysmaster.dao.IPeopleDAO; import com.sysmaster.po.People; public class PeopleDAOImpl extends GenericDAOImpl<People,Integer> implements IPeopleDAO { }
相关推荐
精通Java EE项目案例-基于Eclipse Spring Struts Hibernate光盘源码.rar精通Java EE项目案例-基于Eclipse Spring Struts Hibernate光盘源码.rar精通Java EE项目案例-基于Eclipse Spring Struts Hibernate光盘源码....
精通Java EE项目案例-基于Eclipse Spring Struts Hibernate光盘源码分享给大家的实战案例很值得参考,带数据库版!!!!
精通Java EE项目案例-基于Eclipse Spring Struts Hibernate光盘源码(第二版) PART3
基于hibernate的简单留言本
这是这本书中所有的数据库初始化语句,这样,整本书的教程都已经上传完了,祝你学习愉快!
Java项目案例--基于Struts+hibernate网上书城系统,包含有代码。
Java通用管理系统(easyui、 hibernate、 spring mvc、 spring、 maven、 mysql)
精通Java EE项目案例 基于Eclipse Spring Struts Hibernate光盘源码
基于Hibernate开发的商城网站,注解齐全,实现增改查功能,适合初学者,并通过该项目练习Hibernate
基于hibernate/dwr框架实现的web项目,使用的是oracle数据库。
基于hibernate的例子,用于初学者进行教学使用的很好的例子,里面还用的了servlet
Hibernate留言板Hibernate留言板Hibernate留言板Hibernate留言板Hibernate留言板Hibernate留言板Hibernate留言板Hibernate留言板Hibernate留言板Hibernate留言板Hibernate留言板Hibernate留言板
计算机毕业设计成品 JAVA JSP 车辆管理系统struts+hibernate+spring (源码+WORD文档) 计算机毕业设计成品 JAVA JSP 车辆管理系统struts+hibernate+spring (源码+WORD文档) 计算机毕业设计成品 JAVA JSP 车辆管理...
java项目之Struts+Hibernate实现MVCjava项目之Struts+Hibernate实现MVCjava项目之Struts+Hibernate实现MVCjava项目之Struts+Hibernate实现MVCjava项目之Struts+Hibernate实现MVCjava项目之Struts+Hibernate实现MVC...
精通Java EE:Eclipse Struts2 Hibernate Spring整合应用案例代码和数据库压缩包6
Java开源项目Hibernate深度探险
基于Bootstrap的Java通用框架Spring+mvc+hibernate,大家可以下载来学习,只需执行sql文件,即可启动项目,从前到后一整套源码,若不需要hibernate的同学可以自行更换成mybatis,正好学习练手。