`

java项目 公共接口 IGenericDao、GenericDaoImpl 基于hibernate

    博客分类:
  • j2ee
 
阅读更多

其他类只要实现借口就可以进行增删改查等操作。

 

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光盘源码.rar精通Java EE项目案例-基于Eclipse Spring Struts Hibernate光盘源码....

    精通Java EE项目案例-基于Eclipse Spring Struts Hibernate光盘源码(带数据库)

    Java EE是企业级应用开发的重要框架,而"精通Java EE项目案例-基于Eclipse Spring Struts Hibernate光盘源码"的资源提供了丰富的实践学习材料,旨在帮助开发者深入了解和掌握Java后端开发技术。这个项目案例涵盖了四...

    Java项目公共模块提取

    在Java项目中,公共模块的提取可以使用Struts、Spring、Hibernate、JBPM、Ajax、JSP等技术。这些技术可以帮助开发者快速构建项目,并提供了许多有用的功能,例如Struts的MVC框架、Spring的依赖注入、Hibernate的对象...

    精通Java EE项目案例--基于Eclipse Spring Struts Hibernate (例子中的初始化SQL)

    本资源“精通Java EE项目案例--基于Eclipse Spring Struts Hibernate (例子中的初始化SQL)”正是针对这样的集成环境提供了一套完整的数据库初始化语句,帮助开发者快速构建一个功能完善的Web应用。 首先,让我们...

    精通Java EE项目案例-基于Eclipse Spring Struts Hibernate光盘源码(第二版)

    【精通Java EE项目案例-基于Eclipse Spring Struts Hibernate光盘源码(第二版)】这一资源涵盖了Java企业级开发中的关键技术和实践,是学习和深入理解Java EE应用开发的宝贵资料。本资源以Eclipse作为集成开发环境,...

    基于hibernate的简单留言本

    在"基于hibernate的简单留言本"项目中,理解并熟练掌握以上知识点是至关重要的。这个项目为初学者提供了实战经验,让他们更好地理解和运用Hibernate框架。通过此项目,开发者不仅可以熟悉Hibernate的基本操作,还能...

    精通Java EE项目案例--基于Eclipse Spring Struts Hibernate (源程序4)

    【精通Java EE项目案例--基于Eclipse Spring Struts Hibernate (源程序4)】 这个项目案例是针对Java EE开发的一次深度实践,旨在帮助开发者通过实际操作掌握Java企业级应用开发的核心技术。它主要使用了Eclipse作为...

    精通Java EE项目案例--基于Eclipse Spring Struts Hibernate (源程序3)

    【标题】"精通Java EE项目案例--基于Eclipse Spring Struts Hibernate (源程序3)" 提供了一个深入理解Java企业级应用开发的实例。这个案例基于经典的"SSH"框架,即Eclipse作为集成开发环境,Spring作为核心框架,...

    精通Java EE项目案例--基于Eclipse Spring Struts Hibernate (源程序6)

    《精通Java EE项目案例——基于Eclipse Spring Struts Hibernate (源程序6)》是一个深入实践的教程,旨在帮助开发者熟练掌握Java企业级开发的关键技术。本案例以"OrderTickets"项目为例,涵盖了Java EE开发中的核心...

    Java Web整合开发实战:基于Struts 2+Hibernate+Spring(PDF)

    Java Web整合开发实战--基于Struts 2+Hibernate+Spring.pdf 1章 Web的工作机制 2章 搭建Java Web开发环境 3章 JSP及其相关技术 2篇 表现层框架Struts技术 4章 Struts快速上手 5章 解密Struts之核心文件 6章 ...

    基于Hibernate开发的商城网站

    【标题】"基于Hibernate开发的商城网站"是一个实践项目,主要展示了如何利用Hibernate这一流行的Java持久层框架来构建一个电子商务平台。Hibernate是一个对象关系映射(ORM)工具,它简化了数据库与Java对象之间的...

    基于hibernate/dwr框架实现的web项目

    在这个"基于Hibernate/DWR框架实现的Web项目"中,我们可以看到开发者利用了Java Web开发的强大工具,包括Hibernate作为持久层框架,Direct Web Remoting (DWR)作为前端与后端交互的桥梁,以及Oracle数据库作为数据...

    Java通用管理系统(easyui、 hibernate、 spring mvc、 spring、 maven、 mysql)

    Java通用管理系统是一个基于多种技术构建的综合应用,用于实现企业级的信息管理和业务处理。系统主要采用了以下技术栈:EasyUI、Hibernate、Spring MVC、Spring、Maven和MySQL,这些都是Java开发中的重要工具和框架...

    精通Java EE项目案例--基于Eclipse Spring Struts Hibernate (源程序2)

    《精通Java EE项目案例--基于Eclipse Spring Struts Hibernate (源程序2)》是一个深入学习Java企业级开发的实践教程,特别关注于Eclipse集成开发环境、Spring框架、Struts和Hibernate这四大核心技术的整合应用。...

    基于hibernate的网上留言簿

    **基于Hibernate的网上留言簿**是一个实用的教学项目,旨在帮助初学者理解如何在Web应用程序中集成Hibernate框架。Hibernate是一个强大的对象关系映射(ORM)工具,它可以将Java类与数据库表进行映射,从而简化...

    Hibernate留言板

    综上所述,这个项目是一个典型的基于Hibernate和Spring框架的学生管理系统。它不仅涉及到了ORM框架的使用,还包含了一定程度上的系统架构设计,如DAO层、Service层的设计,以及关系数据库的实体映射等。通过这些知识...

    Java项目案例--基于Struts+hibernate网上书城系统

    **Java项目案例--基于Struts+Hibernate网上书城系统** 这个项目案例是使用Java技术栈构建的一个典型的企业级应用,主要采用了Struts作为MVC框架,Hibernate作为对象关系映射(ORM)工具,来实现一个功能完备的网上...

    精通Java EE项目案例 基于Eclipse Spring Struts Hibernate光盘源码

    在本资源中,"精通Java EE项目案例 基于Eclipse Spring Struts Hibernate光盘源码" 提供了一个深入学习Java EE企业级应用开发的机会。这个案例集着重于使用Eclipse集成开发环境,以及Spring、Struts和Hibernate这三...

    基于hibernate+spring+struts的学生选课系统

    【标题】"基于hibernate+spring+struts的学生选课系统"是一个常见的Java Web开发框架的集成应用,用于构建高效、稳定且易于维护的学生选课管理平台。这个系统利用了三大主流开源框架:Hibernate作为对象关系映射...

Global site tag (gtag.js) - Google Analytics