其他类只要实现借口就可以进行增删改查等操作。
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是企业级应用开发的重要框架,而"精通Java EE项目案例-基于Eclipse Spring Struts Hibernate光盘源码"的资源提供了丰富的实践学习材料,旨在帮助开发者深入了解和掌握Java后端开发技术。这个项目案例涵盖了四...
在Java项目中,公共模块的提取可以使用Struts、Spring、Hibernate、JBPM、Ajax、JSP等技术。这些技术可以帮助开发者快速构建项目,并提供了许多有用的功能,例如Struts的MVC框架、Spring的依赖注入、Hibernate的对象...
本资源“精通Java EE项目案例--基于Eclipse Spring Struts Hibernate (例子中的初始化SQL)”正是针对这样的集成环境提供了一套完整的数据库初始化语句,帮助开发者快速构建一个功能完善的Web应用。 首先,让我们...
【精通Java EE项目案例-基于Eclipse Spring Struts Hibernate光盘源码(第二版)】这一资源涵盖了Java企业级开发中的关键技术和实践,是学习和深入理解Java EE应用开发的宝贵资料。本资源以Eclipse作为集成开发环境,...
在"基于hibernate的简单留言本"项目中,理解并熟练掌握以上知识点是至关重要的。这个项目为初学者提供了实战经验,让他们更好地理解和运用Hibernate框架。通过此项目,开发者不仅可以熟悉Hibernate的基本操作,还能...
【精通Java EE项目案例--基于Eclipse Spring Struts Hibernate (源程序4)】 这个项目案例是针对Java EE开发的一次深度实践,旨在帮助开发者通过实际操作掌握Java企业级应用开发的核心技术。它主要使用了Eclipse作为...
【标题】"精通Java EE项目案例--基于Eclipse Spring Struts Hibernate (源程序3)" 提供了一个深入理解Java企业级应用开发的实例。这个案例基于经典的"SSH"框架,即Eclipse作为集成开发环境,Spring作为核心框架,...
《精通Java EE项目案例——基于Eclipse Spring Struts Hibernate (源程序6)》是一个深入实践的教程,旨在帮助开发者熟练掌握Java企业级开发的关键技术。本案例以"OrderTickets"项目为例,涵盖了Java EE开发中的核心...
Java Web整合开发实战--基于Struts 2+Hibernate+Spring.pdf 1章 Web的工作机制 2章 搭建Java Web开发环境 3章 JSP及其相关技术 2篇 表现层框架Struts技术 4章 Struts快速上手 5章 解密Struts之核心文件 6章 ...
【标题】"基于Hibernate开发的商城网站"是一个实践项目,主要展示了如何利用Hibernate这一流行的Java持久层框架来构建一个电子商务平台。Hibernate是一个对象关系映射(ORM)工具,它简化了数据库与Java对象之间的...
在这个"基于Hibernate/DWR框架实现的Web项目"中,我们可以看到开发者利用了Java Web开发的强大工具,包括Hibernate作为持久层框架,Direct Web Remoting (DWR)作为前端与后端交互的桥梁,以及Oracle数据库作为数据...
Java通用管理系统是一个基于多种技术构建的综合应用,用于实现企业级的信息管理和业务处理。系统主要采用了以下技术栈:EasyUI、Hibernate、Spring MVC、Spring、Maven和MySQL,这些都是Java开发中的重要工具和框架...
《精通Java EE项目案例--基于Eclipse Spring Struts Hibernate (源程序2)》是一个深入学习Java企业级开发的实践教程,特别关注于Eclipse集成开发环境、Spring框架、Struts和Hibernate这四大核心技术的整合应用。...
**基于Hibernate的网上留言簿**是一个实用的教学项目,旨在帮助初学者理解如何在Web应用程序中集成Hibernate框架。Hibernate是一个强大的对象关系映射(ORM)工具,它可以将Java类与数据库表进行映射,从而简化...
综上所述,这个项目是一个典型的基于Hibernate和Spring框架的学生管理系统。它不仅涉及到了ORM框架的使用,还包含了一定程度上的系统架构设计,如DAO层、Service层的设计,以及关系数据库的实体映射等。通过这些知识...
**Java项目案例--基于Struts+Hibernate网上书城系统** 这个项目案例是使用Java技术栈构建的一个典型的企业级应用,主要采用了Struts作为MVC框架,Hibernate作为对象关系映射(ORM)工具,来实现一个功能完备的网上...
在本资源中,"精通Java EE项目案例 基于Eclipse Spring Struts Hibernate光盘源码" 提供了一个深入学习Java EE企业级应用开发的机会。这个案例集着重于使用Eclipse集成开发环境,以及Spring、Struts和Hibernate这三...
【标题】"基于hibernate+spring+struts的学生选课系统"是一个常见的Java Web开发框架的集成应用,用于构建高效、稳定且易于维护的学生选课管理平台。这个系统利用了三大主流开源框架:Hibernate作为对象关系映射...