import java.io.Serializable;
import java.sql.SQLException;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
/**
* @描述: 公共DAO层实现
*/
@SuppressWarnings("unchecked")
public class CommonDaoImpl extends HibernateDaoSupport implements ICommonDao {
public Serializable add(Object object) throws Exception{
return (Serializable) super.getHibernateTemplate().save(object);
}
public void del(Object object) throws Exception{
super.getHibernateTemplate().delete(object);
}
public void update(Object object) throws Exception{
super.getHibernateTemplate().update(object);
}
public Object get(Class clazz, Serializable id) throws Exception{
try{
return super.getHibernateTemplate().get(clazz, id);
}catch (Exception e) {
e.printStackTrace();
}
return null;
}
public List list(final String hql, final int pageNo, final int pageSize) throws Exception{
return super.getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createQuery(hql);
query.setFirstResult((pageNo - 1) * pageSize);
query.setMaxResults(pageSize);
return query.list();
}
});
}
public int getRowCount(final String hql) throws Exception{
Long i = (Long) super.getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createQuery(hql);
return query.uniqueResult();
}
});
return i.intValue();
}
public List list(String hql) throws Exception{
return super.getHibernateTemplate().find(hql);
}
public void execute(final String hql) throws Exception{
super.getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createQuery(hql);
return query.executeUpdate();
}
});
}
public Object execHql(final String hql) throws Exception{
return (Object)super.getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createQuery(hql);
return query.uniqueResult();
}
});
}
public List sqllist(final String sql, final int pageNo, final int pageSize) throws Exception{
return super.getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createSQLQuery(sql);
query.setFirstResult((pageNo - 1) * pageSize);
query.setMaxResults(pageSize);
return query.list();
}
});
}
@Override
public List sqllist(final String sql) throws Exception{
return super.getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createSQLQuery(sql);
return query.list();
}
});
}
}
分享到:
相关推荐
通过以上分析,我们可以看到,HibernateDAO的写法涉及到了面向对象设计原则、事务管理、数据库操作等多个方面,理解和掌握这些知识点,对于提升Java企业级应用的开发效率和质量至关重要。在实际开发中,我们需要根据...
Hibernate框架Hql语句in中带参数的写法 Hibernate框架中,在使用HQL语句时,需要传递参数,而在HQL语句中使用in关键字时,需要特别注意参数的传递方式。在本文中,我们将讨论如何在HQL语句中使用in关键字带参数的...
Hibernate的原理和优点
在Java企业级应用开发中,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。本文将深入探讨如何使用Hibernate实现递归查询,以解决在数据层次结构中涉及父节点与子节点关系时的问题。递归...
标题中的“hibernate和MySQL的jar”指的是Hibernate ORM框架与MySQL数据库之间的连接库。Hibernate是一种流行的Java对象关系映射(ORM)工具,它允许开发者使用面向对象的编程方式来操作数据库,而无需直接编写SQL...
Hibernate 的主要特点是:支持多种数据库管理系统、提供了高效的数据访问机制、支持事务处理和缓存机制等。 Hibernate 环境搭建 要使用 Hibernate,首先需要搭建 Hibernate 的开发环境。下面是 Hibernate 环境搭建...
首先,让我们详细了解一下Hibernate4.0。在这一版本中,Hibernate引入了一些重要的改进和新特性。例如,对JPA 2.0规范的全面支持,使得开发者能够更方便地利用Java持久化API。此外,还增强了对批处理操作的支持,...
总结来说,hibernate-extensions和Middlegen-Hibernate是提高Hibernate开发效率的利器,它们通过自动化的方式,帮助开发者快速生成数据库映射文件和Java实体类,使得开发工作更加高效和便捷。合理利用这两个工具,...
### ibatis 与 hibernate 之间的比较:优点和缺点 #### 概述 在 Java 开发领域中,对象关系映射(Object Relational Mapping,简称 ORM)是一种将面向对象编程语言中的对象模型与数据库系统中的关系模型相互转换的...
"自动生成 Hibernate 映射文件和实体类" 自动生成 Hibernate 映射文件和实体类是使用 MyEclipse 工具来实现的,这可以大大提高开发效率,减少开发时间。下面将详细介绍如何使用 MyEclipse 自动生成 Hibernate 映射...
然而,它也有不足之处,例如,开发效率和维护效率相对较低,且开发难度较大,代码量大。持久化对象通常是普通的Java对象(POJO),这也是ORM框架轻量级解决方案的体现。 Java持久化API(JPA)是Java EE 5规范的一...
五、Hibernate Spatial 4 的优点 Hibernate Spatial 4 提供了对空间几何对象的数据库操作支持,包括空间查询、空间索引和空间分析等功能。它还提供了与其他 Hibernate 项目的集成支持。 六、结论 Hibernate ...
然而,为了满足更复杂的业务需求,Hibernate还提供了丰富的扩展功能,这就是我们今天要讨论的Hibernate-Extensions。这个完整的安装包,包含了一系列强大的工具和功能,旨在提升开发效率,优化数据管理。 一、...
### iBatis与Hibernate的主要区别 #### 一、概述 iBatis与Hibernate都是Java领域内流行的ORM(Object-Relational Mapping,对象关系映射)框架,用于简化Java应用程序与数据库之间的交互。尽管它们有着相似的目标,...
- 参与社区讨论或查阅官方文档,以获取最新的技术动态和支持。 综上所述,《Hibernate实战》是一本内容丰富、实用性强的专业书籍,无论对于初学者还是有经验的开发人员来说,都是学习Hibernate框架不可多得的宝贵...
"Hibernate-HQL语句多对多写法" Hibernate 是一个流行的 Java 持久层框架,它提供了强大的对象关系映射(ORM)功能,使得开发者可以方便地与数据库交互。但是,在使用 Hibernate 时,我们经常会遇到多对多关系的...
本文将深入探讨Hibernate的配置文件和类映射文件的常用写法,帮助开发者更好地理解和应用Hibernate。 首先,我们来看`Hibernate.cfg.xml`配置文件,它是Hibernate应用的核心配置,包含了数据库连接、方言、自动建表...
KingbaseV8是一款由中国金仓信息技术股份有限公司开发的数据库管理系统,它支持标准的SQL语法,具有高可用性、高安全性、高性能等特点,广泛应用于企业级数据管理。在Java开发环境中,与KingbaseV8数据库进行交互...