`
sgl124764903
  • 浏览: 174741 次
  • 性别: Icon_minigender_1
  • 来自: 邯郸
社区版块
存档分类
最新评论

ssh2 DAO接口再抽象

    博客分类:
  • SSH2
阅读更多

GenericDao.java

 

/** 基于泛型的通用Dao接口 */
public interface GenericDao<T, ID extends Serializable> {
	void create(T entity);  //增
	void delete(T entity);  //删
	void update(T entity);  //改
	
	T findById(ID id);       //根据Id查询
	List<T> findAll();       //查询所有
	List<T> findList(int pageNo, int pageSize);  //分页查询所有
	int getTotal();           //获取所有实体数量
}

 GenericHibernateDaoImpl.java

 

/** Hibernate对通用的Dao接口的实现 */
public class GenericHibernateDaoImpl<T,ID extends Serializable>
     implements GenericDao<T,ID> {
	private Class<T> clazz;
	@SuppressWarnings("unchecked")
	public GenericHibernateDaoImpl() {
		//通过反射获取T的类型信息实例
		this.clazz = (Class<T>)((ParameterizedType)this.getClass()
								.getGenericSuperclass())
							    .getActualTypeArguments()[0];
	}
	public void create(T entity) {   //create方法的实现
		HibernateUtil.getSession().save(entity);
	}
	public void delete(T entity) {    //delete方法的实现
		HibernateUtil.getSession().delete(entity);
	}
	@SuppressWarnings("unchecked")
	public void update(T entity) {    //update方法的实现
		//HibernateUtil.getSession().saveOrUpdate(entity);
		entity = (T) HibernateUtil.getSession().merge(entity);
	}
	@SuppressWarnings("unchecked")
	public T findById(ID id) {    //findById方法的实现
		return (T)HibernateUtil.getSession().load(clazz, id); //get
	}
	@SuppressWarnings("unchecked")
	public List<T> findAll() {     //findAll方法的实现
		return HibernateUtil.getSession().createCriteria(clazz).list();
	}
	@SuppressWarnings("unchecked")
	public List<T> findList(int pageNo, int pageSize) {    //分页查询
		return HibernateUtil.getSession()
						.createCriteria(clazz)
					   .setFirstResult((pageNo - 1) * pageSize)
					   .setMaxResults(pageSize)
					   .list();
	}
	public int getTotal() {    //获取总记录数
		Integer count = (Integer) HibernateUtil.getSession()
						          .createCriteria(clazz)
								.setProjection(Projections.rowCount())
								.uniqueResult();
		if (null == count) {
			return 0;
		} else {
			return count.intValue();
		}
	}
}

 参考文章:http://tech.it168.com/j/2007-12-27/200712271701173_1.shtml

分享到:
评论

相关推荐

    java ssh通用DAO另类实现示例

    DAO是一种设计模式,它为应用程序提供了一种抽象的接口,以便与数据库进行交互,同时避免了硬编码SQL语句和紧密耦合数据库细节的问题。在SSH框架中,Hibernate作为ORM(Object-Relational Mapping)工具,可以直接...

    ssh2 + dao泛型

    在IT行业中,SSH2(Secure Shell 2)通常指的是用于远程访问和安全通信的协议,而DAO(Data Access Object)模式则是一种常见的软件设计模式,主要用于数据库操作的抽象。这篇博客"ssh2 + dao泛型"结合了这两个概念...

    基于注解ssh的通用dao的crud

    在IT行业中,SSH(Spring、Struts2、Hibernate)是一个非常经典的Java Web开发框架组合,它们各自负责应用程序的不同层面:Spring作为应用上下文和依赖注入框架,Struts2作为MVC(模型-视图-控制器)框架处理请求,...

    ssh2最小系统

    在SSH2中,Spring主要负责管理对象的生命周期和依赖关系,同时也可以作为数据访问层的抽象,如使用Spring JDBC或MyBatis。 1. **依赖注入**:允许开发者在不修改代码的情况下,通过配置文件来决定对象之间的依赖...

    ssh通用基于泛型的dao

    标题“ssh通用基于泛型的dao”指的是使用SSH(Spring、Struts2、Hibernate)框架开发的一个通用的、基于泛型的DAO实现,它旨在提高开发效率,减少重复工作。 SSH框架是Java企业级应用开发的常用组合,Spring提供了...

    ssh2框架例子

    SSH2框架,全称为Spring、Struts2和Hibernate2的集成框架,是Java开发领域中常用的Web应用开发框架。这个框架结合了Spring的IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面...

    SSH2框架整合

    SSH2框架整合是Java开发中的一个重要概念,它指的是Spring、Struts2和Hibernate这三大主流开源框架的集成应用。在企业级Web应用开发中,SSH2框架整合能够提供高效、灵活且可维护的解决方案。 首先,Spring框架是SSH...

    SSH2框架的web项目

    SSH2框架,全称为Struts2、Spring3和Hibernate3,是Java开发Web应用程序时常用的一种集成框架。这个框架组合提供了强大的MVC(Model-View-Controller)设计模式支持、依赖注入(DI)以及持久层管理,大大简化了Web...

    ssh2项目

    SSH2项目是一个基于Java技术的Web应用程序开发框架,它整合了Struts2、Spring3和Hibernate3(或JPA)这三个流行的开源框架。这个项目的目的是为了简化开发过程,提高代码的可维护性和可扩展性。下面我们将分别详细...

    ssh2图书系统

    5. **文件结构**:SSH2Book可能是项目的源代码包,包含了一系列的Java类文件,如Action类、Service接口及实现、DAO接口及实现等。此外,还可能有配置文件如struts.xml、spring-context.xml、hibernate.cfg.xml等,...

    SSH2整合-精简版(带表格分页

    Spring2.0版本在SSH整合中起到了胶水的作用,它可以管理和协调其他组件,如Struts2的Action实例、Hibernate的数据访问对象(DAO)。此外,Spring还提供了数据源管理、事务控制和JDBC抽象,简化了数据库操作。 ...

    SSh2实现增删改查

    5. 操作完成后,Action将结果返回给Struts2,Struts2再根据配置决定如何渲染结果视图,通常是返回一个JSP页面显示操作结果。 学习SSH2框架可以帮助开发者快速构建功能丰富的Web应用,同时理解其内部机制也能提升对...

    SSH2整合框架

    SSH2整合框架是Java开发中常用的一种高效、稳定且可扩展的Web应用程序开发架构,它由Struts2、Spring和Hibernate三个开源框架组合而成。这三个框架各司其职,共同构建了一个强大的MVC(Model-View-Controller)设计...

    SSH2三大框架的整合详解(附源码)

    **源码分析**:提供的源码包含了SSH2整合的完整示例,包括Action、Service、DAO层的实现,以及相应的配置文件。通过阅读和运行这些代码,可以更好地理解SSH2框架如何协同工作,如何处理HTTP请求,如何调用业务逻辑,...

    ssh2用到的相关jar包

    SSH2(Spring、Struts2、Hibernate)是一个经典的Java Web开发框架组合,它极大地简化了企业级应用的开发过程。这个框架集合中的每个组件都有其特定的职责,共同构建了一个强大的后端架构。 Spring框架是核心,它...

    SSH2最基础整合代码

    SSH2,全称为Struts2、Spring和Hibernate2的集成框架,是Java开发中的一个经典组合,用于构建企业级Web应用程序。这个框架结合了Struts2的MVC设计模式、Spring的依赖注入(DI)与面向切面编程(AOP)以及Hibernate的...

    SSH2基本配置搭建环境

    - **UserDAOImpl**: UserDAO接口的实现类,通过`parent`属性继承自抽象的UserDAO Bean,这样可以复用一些通用配置。 ##### 3. Hibernate 配置 Hibernate 是一个开放源代码的对象关系映射(ORM)框架,允许开发者以...

    SSH框架搭建jar包

    Action类处理请求,调用Service进行业务逻辑,Service再调用DAO与数据库交互。 7. 测试:通过单元测试和集成测试确保每个组件都能正常工作。 以上就是SSH框架的基本概念和搭建环境的过程。理解并掌握这三个框架,...

    SSH2集成框架

    在SSH2框架中,Struts2、Spring和Hibernate紧密协作,实现了从用户请求到业务处理再到数据存储的无缝衔接。例如,Spring可以通过AOP来实现事务管理,确保在多个操作之间保持数据的一致性。Struts2的Action可以通过...

Global site tag (gtag.js) - Google Analytics