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
分享到:
相关推荐
DAO是一种设计模式,它为应用程序提供了一种抽象的接口,以便与数据库进行交互,同时避免了硬编码SQL语句和紧密耦合数据库细节的问题。在SSH框架中,Hibernate作为ORM(Object-Relational Mapping)工具,可以直接...
在IT行业中,SSH2(Secure Shell 2)通常指的是用于远程访问和安全通信的协议,而DAO(Data Access Object)模式则是一种常见的软件设计模式,主要用于数据库操作的抽象。这篇博客"ssh2 + dao泛型"结合了这两个概念...
在IT行业中,SSH(Spring、Struts2、Hibernate)是一个非常经典的Java Web开发框架组合,它们各自负责应用程序的不同层面:Spring作为应用上下文和依赖注入框架,Struts2作为MVC(模型-视图-控制器)框架处理请求,...
在SSH2中,Spring主要负责管理对象的生命周期和依赖关系,同时也可以作为数据访问层的抽象,如使用Spring JDBC或MyBatis。 1. **依赖注入**:允许开发者在不修改代码的情况下,通过配置文件来决定对象之间的依赖...
标题“ssh通用基于泛型的dao”指的是使用SSH(Spring、Struts2、Hibernate)框架开发的一个通用的、基于泛型的DAO实现,它旨在提高开发效率,减少重复工作。 SSH框架是Java企业级应用开发的常用组合,Spring提供了...
SSH2框架,全称为Spring、Struts2和Hibernate2的集成框架,是Java开发领域中常用的Web应用开发框架。这个框架结合了Spring的IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面...
SSH2框架整合是Java开发中的一个重要概念,它指的是Spring、Struts2和Hibernate这三大主流开源框架的集成应用。在企业级Web应用开发中,SSH2框架整合能够提供高效、灵活且可维护的解决方案。 首先,Spring框架是SSH...
SSH2框架,全称为Struts2、Spring3和Hibernate3,是Java开发Web应用程序时常用的一种集成框架。这个框架组合提供了强大的MVC(Model-View-Controller)设计模式支持、依赖注入(DI)以及持久层管理,大大简化了Web...
SSH2项目是一个基于Java技术的Web应用程序开发框架,它整合了Struts2、Spring3和Hibernate3(或JPA)这三个流行的开源框架。这个项目的目的是为了简化开发过程,提高代码的可维护性和可扩展性。下面我们将分别详细...
5. **文件结构**:SSH2Book可能是项目的源代码包,包含了一系列的Java类文件,如Action类、Service接口及实现、DAO接口及实现等。此外,还可能有配置文件如struts.xml、spring-context.xml、hibernate.cfg.xml等,...
Spring2.0版本在SSH整合中起到了胶水的作用,它可以管理和协调其他组件,如Struts2的Action实例、Hibernate的数据访问对象(DAO)。此外,Spring还提供了数据源管理、事务控制和JDBC抽象,简化了数据库操作。 ...
5. 操作完成后,Action将结果返回给Struts2,Struts2再根据配置决定如何渲染结果视图,通常是返回一个JSP页面显示操作结果。 学习SSH2框架可以帮助开发者快速构建功能丰富的Web应用,同时理解其内部机制也能提升对...
SSH2整合框架是Java开发中常用的一种高效、稳定且可扩展的Web应用程序开发架构,它由Struts2、Spring和Hibernate三个开源框架组合而成。这三个框架各司其职,共同构建了一个强大的MVC(Model-View-Controller)设计...
**源码分析**:提供的源码包含了SSH2整合的完整示例,包括Action、Service、DAO层的实现,以及相应的配置文件。通过阅读和运行这些代码,可以更好地理解SSH2框架如何协同工作,如何处理HTTP请求,如何调用业务逻辑,...
SSH2(Spring、Struts2、Hibernate)是一个经典的Java Web开发框架组合,它极大地简化了企业级应用的开发过程。这个框架集合中的每个组件都有其特定的职责,共同构建了一个强大的后端架构。 Spring框架是核心,它...
SSH2,全称为Struts2、Spring和Hibernate2的集成框架,是Java开发中的一个经典组合,用于构建企业级Web应用程序。这个框架结合了Struts2的MVC设计模式、Spring的依赖注入(DI)与面向切面编程(AOP)以及Hibernate的...
- **UserDAOImpl**: UserDAO接口的实现类,通过`parent`属性继承自抽象的UserDAO Bean,这样可以复用一些通用配置。 ##### 3. Hibernate 配置 Hibernate 是一个开放源代码的对象关系映射(ORM)框架,允许开发者以...
Action类处理请求,调用Service进行业务逻辑,Service再调用DAO与数据库交互。 7. 测试:通过单元测试和集成测试确保每个组件都能正常工作。 以上就是SSH框架的基本概念和搭建环境的过程。理解并掌握这三个框架,...
在SSH2框架中,Struts2、Spring和Hibernate紧密协作,实现了从用户请求到业务处理再到数据存储的无缝衔接。例如,Spring可以通过AOP来实现事务管理,确保在多个操作之间保持数据的一致性。Struts2的Action可以通过...