`
高级java工程师
  • 浏览: 410901 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hibernate 完善的操作

阅读更多

HibernateTemplate提供非常多的常用方法来完成基本的操作,比如通常的增加、删除、修改、查询等操作,Spring 2.0更增加对命名SQL查询的支持,也增加对分页的支持。大部分情况下,使用Hibernate的常规用法,就可完成大多数DAO对象的CRUD操作。下面是HibernateTemplate的常用方法简介:
 
q      void delete(Object entity):删除指定持久化实例
 
q      deleteAll(Collection entities):删除集合内全部持久化类实例
 
q      find(String queryString):根据HQL查询字符串来返回实例集合
 
q      findByNamedQuery(String queryName):根据命名查询返回实例集合
 
q      get(Class entityClass, Serializable id):根据主键加载特定持久化类的实例
 
q      save(Object entity):保存新的实例
 
q      saveOrUpdate(Object entity):根据实例状态,选择保存或者更新
 
q      update(Object entity):更新实例的状态,要求entity是持久状态
 
q      setMaxResults(int maxResults):设置分页的大小
 
下面是一个完整DAO类的源代码:
 
public class PersonDAOHibernate implements PersonDAO
 
{
 
    //采用log4j来完成调试时的日志功能
 
private static Log log = LogFactory.getLog(NewsDAOHibernate.class);
 
    //以私有的成员变量来保存SessionFactory。
 
private SessionFactory sessionFactory;
 
//以私有变量的方式保存HibernateTemplate
 
private HibernateTemplate hibernateTemplate = null;
 
         //设值注入SessionFactory必需的setter方法
 
    public void setSessionFactory(SessionFactory sessionFactory) 

{
 
           this.sessionFactory = sessionFactory;
 
    }
 
         //初始化本DAO所需的HibernateTemplate
 
public HIbernateTemplate getHibernateTemplate() 

{
 
         //首先,检查原来的hibernateTemplate实例是否还存在
 
         if ( hibernateTemplate == null)
 
         {
 
                   //如果不存在,新建一个HibernateTemplate实例
 
                   hibernateTemplate = new HibernateTemplate(sessionFactory);
 
         }
 
         return hibernateTemplate;
 
}
 
         //返回全部的人的实例
 
    public List getPersons()
 
         {        

                   //通过HibernateTemplate的find方法返回Person的全部实例
 
           return getHibernateTemplate().find("from Person");
 
    }
 
         /**
 
         * 根据主键返回特定实例
 
         * @ return 特定主键对应的Person实例
 
         * @ param 主键值
 
    public News getNews(int personid)
 
         {
 
           return (Person)getHibernateTemplate().get(Person.class, new Integer(personid));
 
    }
 
         /**
 
         * @ person 需要保存的Person实例
 
         */
 
    public void savePerson(Person person)
 
         {                 

                   getHibernateTemplate().saveOrUpdate(person);
 
    }
 
         /**
 
         * @ param personid 需要删除Person实例的主键
 
         * /
 
    public void removePerson(int personid)
 
         {
 
                   //先加载特定实例
 
           Object p = getHibernateTemplate().load(Person.class, new Integer(personid));
 
                   //删除特定实例
 
           getHibernateTemplate().delete(p);
 
    }
 
}


分享到:
评论

相关推荐

    06_传智播客hibernate教程_完善HibernateUtil类及hql查询入门

    在IT行业中,Hibernate是一个非常重要的Java持久化框架,它简化了数据库操作,使得开发者可以更加专注于业务逻辑,而不是底层的数据存取细节。本教程聚焦于“完善HibernateUtil类及HQL查询入门”,让我们深入探讨这...

    达梦 Hibernate 方言 2.0 至 4.0

    1. **SQL兼容性**:随着版本的提升,方言对达梦数据库的SQL语法支持更加完善,确保了在不同版本的Hibernate中,开发者可以编写出符合达梦数据库特性的SQL语句。 2. **事务管理**:在新版本的方言中,对事务的处理...

    hibernate 开发文档发布

    Hibernate,作为Java领域中的一款著名对象关系映射(ORM)框架,极大地简化了数据库操作,使得开发者可以更加专注于业务逻辑而不是底层数据存储。本篇文章将深入探讨Hibernate 3.1.1和3.1.2版本的开发文档,为读者...

    hibernate-release-5.3.2.Final

    3. 新的查询语言:HQL(Hibernate Query Language)和JPQL(Java Persistence Query Language)进一步完善,支持更复杂的查询表达式,同时增加了对构造函数查询的支持。 4. 错误修复和兼容性提升:5.3.2.Final修复了...

    JSP+Hibernate实现留言板

    在这个案例中,我们使用了Java服务器页面(JSP)作为视图层,Hibernate作为持久层框架来处理数据库操作,实现了留言板的功能。下面我们将深入探讨这两个技术及其在留言板应用中的具体应用。 **1. JSP(Java Server ...

    hibernate教程+3.0API

    6. **事务管理**:Hibernate支持JTA(Java Transaction API)和JDBC事务管理,提供了一套完善的事务控制机制,确保数据操作的原子性、一致性、隔离性和持久性。 7. **缓存机制**:Hibernate内置了二级缓存,可以...

    hibernate3.2.5

    Hibernate 3.2.5的核心特性之一是完善的对象模型支持。这个版本进一步强化了对JPA(Java Persistence API)的支持,使得开发者可以更加方便地利用注解来定义对象与数据库表之间的映射关系。例如,@Entity、@Table、@...

    最新hibernate 4.1.1.Final版本

    6. **增强的事务处理**:在4.1.1版本中,Hibernate提供了更完善的事务管理功能,包括支持声明式和编程式的事务处理,以及集成JTA(Java Transaction API)的能力。 7. **事件监听系统**:Hibernate 4.1.1引入了一个...

    hibernate 4.1.6的lib文件

    这个lib文件包含了运行Hibernate应用程序所需的所有依赖库,使得开发者能够轻松地将数据库操作与业务逻辑解耦,提高开发效率。 在Hibernate 4.1.6版本中,主要包含以下几个关键组件和知识点: 1. **Hibernate Core...

    springmvc+spring+hibernate

    7. **DAO和Service层**:创建DAO接口和实现类,利用Hibernate的Session进行数据库操作。同时,创建Service层接口和实现类,将业务逻辑封装起来,这些类通常会依赖于DAO层。 8. **Controller层**:创建Spring MVC的...

    hibernate-4.2.3.required

    5. **实体生命周期**:对持久化对象的生命周期管理更加完善,如@PrePersist、@PostPersist、@PreUpdate等注解,便于在对象状态改变时执行特定操作。 6. **异步操作**:引入了异步操作的支持,使开发者可以并发处理...

    jsp+Spring+hibernate 博客系统

    这个"jsp+Spring+hibernate"博客系统展示了如何利用现代Java技术栈构建一个功能完善的Web应用。通过结合JSP的视图呈现、Spring的控制层管理和Hibernate的数据持久化,开发者能够快速、高效地开发出具有复杂业务逻辑...

    hibernate5.2.6-compiled

    **hibernate5.2.6-compiled** 这个标题表明我们正在讨论的是Hibernate ORM框架的一个特定版本,即5.2.6...总之,hibernate5.2.6-compiled提供的是一套完善的ORM解决方案,旨在简化Java应用的数据库操作,提高开发效率。

    hibernate-release-5.3.6

    通过提供一个对象模型到关系数据库的映射,Hibernate允许程序员以面向对象的方式操作数据,极大地提高了开发效率。 在hibernate-release-5.3.6.Final这个压缩包中,我们可以找到包括Hibernate核心库、实体管理器、...

    HibernateApi.zip

    Hibernate API,作为Java开发中的一款核心库,主要用于简化数据库操作,提供了一种对象关系映射(ORM)解决方案,将传统的SQL语句与Java对象进行解耦,使得开发者可以更加专注于业务逻辑而非数据库交互。本篇文章将...

    Hibernate5.2.5全部jar包

    总的来说,Hibernate5.2.5提供了一整套完善的ORM解决方案,简化了Java应用与数据库之间的交互,提高了开发效率。开发者可以通过理解这些JAR包的作用,更好地利用Hibernate来构建高效、稳定的数据库应用。

    完善hibernate的增删改查.zip

    "完善Hibernate的增删改查.zip"这个压缩包可能包含了一些关于如何高效地利用Hibernate进行数据库操作的教学资料或示例代码。以下是关于Hibernate增删改查(CRUD)操作的详细知识点: 1. **配置Hibernate**: 首先,...

    hibernate5.2.3.jar

    Hibernate是Java领域中一款著名的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库,极大地简化了数据库编程。标题中的"hibernate5.2.3.jar"指的是Hibernate框架的一个特定版本——5.2.3,这是...

    Hibernate api

    在Hibernate API中,包含了许多核心组件和接口,它们共同构建了一个完善的数据库操作生态系统。 1. **SessionFactory**: 这是Hibernate的核心工厂类,负责创建Session实例。SessionFactory是线程安全的,通常在应用...

Global site tag (gtag.js) - Google Analytics