试验目的:
更新数据库中某一字段,其余字段不变。
(1)使用Update()方法
查阅Hibernate API(Hibernate_3.2.0_Reference_zh_CN.chm)得到Update()方法有:
update(Object object)
update(Object object, Serializable id)
update(String entityName, Object object)
update(String entityName, Object object, Serializable id)
很不幸运的事我的MyEclipse中只有一下方法(我用的是hibernate3.3.2,比API版本要高...我表示无语)
update(Object object)
update(String entityName, Object object)
测试代码:
Teacher teacher = new Teacher();
teacher.setId(4);
teacher.setName("Marry");
teacher.setBirthDate(new Date());
SessionFactory sf = new AnnotationConfiguration().configure().buildSessionFactory();
Session session = sf.getCurrentSession();
session.beginTransaction();
session.update(teacher);
session.getTransaction().commit();
生成的Hibernate SQL 写道
update
_Teacher
set
birthDate=?,
name=?,
title=?
where
id=?
数据库中结果:
4 | 2011-04-13 19:52:52 | Marry | NULL
结论:使用Update()方法来更新数据得到的是数据对象的整体更新,不存在保留未修改选项,此方法不符合要求。
(2)使用Persistence 来更新
代码:
SessionFactory sf = new AnnotationConfiguration().configure().buildSessionFactory();
Session session = sf.getCurrentSession();
session.beginTransaction();
teacher = (Teacher)session.get(Teacher.class, 5);
teacher.setName("Marry");
session.getTransaction().commit();
生成SQL语句
update
_Teacher
set
birthDate=?,
name=?,
title=?
where
id=?
数据库显示结果:
5 | 2011-04-13 08:22:21 | Marrys | XX
结论:数据库中只修改了某一字段值,其余没有改变,符合要求。
(3) 延伸一下问题,若是使用persistence 来更新数据中的对象信息时Hibernate会发送全部字段的更新信息,有时候会降低效率,若是只发送需要修改的某一字段的信息?
HQL语句 : Hibernate Quary Language 是Hibernate使用的面向对象的数据查询语言。
代码:
Teacher teacher = new Teacher();
SessionFactory sf = new AnnotationConfiguration().configure().buildSessionFactory();
Session session = sf.getCurrentSession();
session.beginTransaction();
Query query = session.createQuery("update Teacher t set t.name='Toms' where t.id=5");
query.executeUpdate();
session.getTransaction().commit();
Hibernate产生SQL语句:
update
_Teacher
set
name='Toms'
where
id=5
数据显示结果:
5 | 2011-04-13 08:22:21 | Toms | XX
结论:该方法同样可以满足实验要求,同时又能做到执行时候只发送需要修改字段的SQL语句,同时有使用到了HQL面向对象的语句,这种方法在项目中比较常用,是解决Update的首选方法。
分享到:
相关推荐
【hibernate-学习笔记】 Hibernate 是一个强大的Java对象关系映射(ORM)框架,它为开发者提供了在Java应用程序中管理关系数据库数据的便捷方式。本学习笔记将深入探讨Hibernate的核心概念、配置、实体映射、查询...
在使用Hibernate进行数据操作时,主要涉及三类文件:Java类(实体类)、映射文件(如test.hbm.xml)和数据库的表结构。 首先,实体类是Hibernate的核心,它代表了数据库中的表。在设计实体类时,通常会遵循面向对象...
### hibernate-note学习笔记知识点详解 #### 一、对象持久化 **1.1 概述** 对象持久化是指将程序中的对象状态保存到非易失性存储中(如硬盘或磁盘等),以便在系统重启后仍能保留这些状态。这种技术常用于将对象的...
【Hibernate - Annotation 学习笔记】 Hibernate 是一个流行的开源Java对象关系映射(ORM)框架,它极大地简化了数据库操作,使得开发人员可以使用面向对象的方式处理数据存储。Annotation是Hibernate提供的一种元...
《Hibernate学习笔记特别详细》 Hibernate,作为一款开源的Object-Relational Mapping(ORM)框架,为Java开发者提供了强大的数据库操作支持。它简化了数据库访问的复杂性,使得开发人员可以像操作对象一样操作...
### Hibernate—我的Hibernate学习笔记 #### 一、对象持久化的理论与实践 ##### 对象持久化概念 对象持久化指的是将内存中的对象状态保存至外部持久性存储设备(如硬盘),以便于日后需要时能够恢复其状态。这一...
Hibernate学习笔记整理 以下是 Hibernate 框架的详细知识点: Hibernate 介绍 Hibernate 是一个 ORM(Object-Relational Mapping)框架,用于将 Java 对象映射到数据库表中。它提供了一个简洁的方式来访问和操作...
### hibernate框架学习笔记整理 #### 一、Hibernate框架简介 **Hibernate框架**是一种用于Java应用的**对象关系映射**(Object-Relational Mapping, ORM)解决方案,它允许开发者使用面向对象的方式操作数据库中的表...
【hibernate个人学习笔记完整版】是一份详尽的资料,涵盖了Hibernate框架的基础到高级应用,旨在帮助学习者深入理解和掌握这一强大的Java对象关系映射(ORM)工具。Hibernate作为Java开发中的主流ORM框架,它极大地...
在本篇《Hibernate学习笔记》中,我们将深入...以上就是Hibernate学习笔记的一些核心概念和操作示例,涵盖了数据的增删查改以及事务管理。通过理解和实践这些知识点,开发者可以更有效地利用Hibernate进行数据库操作。
### Hibernate 3.2 学习笔记:一对一主键关联详解 #### 一、一对一主键关联概述 在本节中,我们将详细探讨 Hibernate 3.2 中的一对一关联关系,尤其是通过主键实现的双向关联。这种关联通常出现在需要紧密绑定两个...
【一、O/R Mapping】 O/R Mapping,即对象关系映射,是将对象模型与关系数据库之间进行映射的技术。在Hibernate中,O/R Mapping允许开发者以面向对象的方式...学习和掌握Hibernate有助于提升Java应用的数据管理能力。
【hibernate框架开发2016版视频 四天学习笔记完整版】 在软件开发领域,特别是Java Web开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它极大地简化了数据库操作,使开发者可以更专注于业务逻辑而不是...
《Hibernate3.2学习笔记详解》 在Java开发中,ORM(Object-Relational Mapping)框架如Hibernate极大地简化了数据库操作,使得开发者可以更加专注于业务逻辑而不是底层的数据存取。本篇学习笔记将深入探讨Hibernate...
【hibernate_day02笔记】的文档主要涵盖了学习Hibernate框架的基础内容,包括ORM思想、Hibernate入门案例、配置文件解析、核心API的使用等。以下是详细的讲解: **ORM思想**: ORM(Object-Relational Mapping)即...
### Hibernate 学习笔记知识点详解 #### 一、Hibernate 简介 - **概念**:Hibernate 是一种“对象/关系映射”(Object/Relational Mapping,简称 ORM)技术,用于解决 Java 应用程序与关系型数据库交互的问题。 - *...
**Hibernate学习笔记与总结** Hibernate 是一款开源的对象关系映射(ORM)框架,它为Java开发者提供了一种在关系数据库上操作对象数据的便捷方式。本文将深入探讨Hibernate的核心概念、配置、实体类、映射文件、...
【hibernate4框架学习笔记】 Hibernate是一款强大的ORM(Object-Relational Mapping)框架,它在Java开发中扮演着至关重要的角色,通过提供对象与数据库之间的映射,解决了对象模型和关系模型之间的“阻抗不匹配”...