`
z_gxjs
  • 浏览: 7318 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

请大家讨论一下hibernate这样的写法的优点和不足

阅读更多
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();
   }
  });
}
}

分享到:
评论
1 楼 z_gxjs 2013-04-12  
求高手分析该代码的优缺点,hibernate模板

相关推荐

    HibernateDAO的写法

    通过以上分析,我们可以看到,HibernateDAO的写法涉及到了面向对象设计原则、事务管理、数据库操作等多个方面,理解和掌握这些知识点,对于提升Java企业级应用的开发效率和质量至关重要。在实际开发中,我们需要根据...

    Hibernate的原理和优点

    Hibernate的原理和优点

    Hibernate框架]Hql语句in中带参数的写法

    Hibernate框架Hql语句in中带参数的写法 Hibernate框架中,在使用HQL语句时,需要传递参数,而在HQL语句中使用in关键字时,需要特别注意参数的传递方式。在本文中,我们将讨论如何在HQL语句中使用in关键字带参数的...

    hibernate和MySQL的jar

    标题中的“hibernate和MySQL的jar”指的是Hibernate ORM框架与MySQL数据库之间的连接库。Hibernate是一种流行的Java对象关系映射(ORM)工具,它允许开发者使用面向对象的编程方式来操作数据库,而无需直接编写SQL...

    Hibernate入门到精通

    Hibernate 的主要特点是:支持多种数据库管理系统、提供了高效的数据访问机制、支持事务处理和缓存机制等。 Hibernate 环境搭建 要使用 Hibernate,首先需要搭建 Hibernate 的开发环境。下面是 Hibernate 环境搭建...

    hibernate-extensions和Middlegen-Hibernate

    总结来说,hibernate-extensions和Middlegen-Hibernate是提高Hibernate开发效率的利器,它们通过自动化的方式,帮助开发者快速生成数据库映射文件和Java实体类,使得开发工作更加高效和便捷。合理利用这两个工具,...

    ibatis 与hibernate之间的比较优点和缺点

    ### ibatis 与 hibernate 之间的比较:优点和缺点 #### 概述 在 Java 开发领域中,对象关系映射(Object Relational Mapping,简称 ORM)是一种将面向对象编程语言中的对象模型与数据库系统中的关系模型相互转换的...

    自动生成hibernate映射文件和实体类

    "自动生成 Hibernate 映射文件和实体类" 自动生成 Hibernate 映射文件和实体类是使用 MyEclipse 工具来实现的,这可以大大提高开发效率,减少开发时间。下面将详细介绍如何使用 MyEclipse 自动生成 Hibernate 映射...

    Hibernate Hibernate5 讲义 PDF

    然而,它也有不足之处,例如,开发效率和维护效率相对较低,且开发难度较大,代码量大。持久化对象通常是普通的Java对象(POJO),这也是ORM框架轻量级解决方案的体现。 Java持久化API(JPA)是Java EE 5规范的一...

    Hibernate 配置各种数据库

    Hibernate 配置各种数据库 Hibernate 是一个基于 Java 的持久层框架,提供了一个抽象的数据访问层,能够与多种数据库进行集成。在 Hibernate 的配置文件中,我们可以配置不同的数据库连接,包括驱动程序、URL 等...

    Hibernate-extensions 完整安装包

    然而,为了满足更复杂的业务需求,Hibernate还提供了丰富的扩展功能,这就是我们今天要讨论的Hibernate-Extensions。这个完整的安装包,包含了一系列强大的工具和功能,旨在提升开发效率,优化数据管理。 一、...

    iBatis和Hibernate的区别

    ### iBatis与Hibernate的主要区别 #### 一、概述 iBatis与Hibernate都是Java领域内流行的ORM(Object-Relational Mapping,对象关系映射)框架,用于简化Java应用程序与数据库之间的交互。尽管它们有着相似的目标,...

    hibernate实战 英文版

    - 参与社区讨论或查阅官方文档,以获取最新的技术动态和支持。 综上所述,《Hibernate实战》是一本内容丰富、实用性强的专业书籍,无论对于初学者还是有经验的开发人员来说,都是学习Hibernate框架不可多得的宝贵...

    Hibernate-HQL语句多对多写法

    "Hibernate-HQL语句多对多写法" Hibernate 是一个流行的 Java 持久层框架,它提供了强大的对象关系映射(ORM)功能,使得开发者可以方便地与数据库交互。但是,在使用 Hibernate 时,我们经常会遇到多对多关系的...

    hibernate配置文件以及类映射文件常用写法1

    本文将深入探讨Hibernate的配置文件和类映射文件的常用写法,帮助开发者更好地理解和应用Hibernate。 首先,我们来看`Hibernate.cfg.xml`配置文件,它是Hibernate应用的核心配置,包含了数据库连接、方言、自动建表...

    hibernate与mybatis一起使用取长补短

    标题“hibernate与mybatis一起使用取长补短”暗示了在一个项目中同时采用这两种框架,旨在充分利用它们各自的优点,以提升项目的性能和灵活性。 Hibernate是一款强大的ORM框架,它提供了完整的对象模型支持,包括...

    Hibernate完整使用教程

    Hibernate 的主要特点是将对象关系映射(O/R Mapping)技术应用于关系数据库,实现了对象到关系数据库的无缝集成。 为什么选择 Hibernate Hibernate 的出现是为了解决传统的 JDBC 编程中的问题。传统的 JDBC 编程...

    Hibernate实战

    同时,还会讨论事务管理和并发控制,确保数据的一致性和完整性。 查询语言在Hibernate中主要有两种:HQL(Hibernate Query Language)和 Criteria API。HQL是面向对象的查询语言,类似于SQL,但更接近于Java的语法...

Global site tag (gtag.js) - Google Analytics