- 浏览: 34040 次
- 性别:
- 来自: 北京
文章分类
最新评论
update方法用于更新数据库内容。在hibernate API中的解释是可以把一个Detached状态的对象更新成Persistent对象。而通过实验发现,只要是有Id的对象(数据库有相应记录,包括手动指定id的Transient对象)都可以使用update方法进行更新。而对于Persistent对象来说,只要重新设置了对像的属性值,再Session提交的时候就会自动更新(隐式的调用update方法?)。关于更新。hibernate在Session flush的时候会和数据库进行比较。如果Session缓存中数据和数据库里的不一致就会发出Sql语句进行更新。
注意到不论是使用update方法还是hibernate自动更新的时候,发出的sql语句都是把整个表的所有字段都更新一遍。这样在有的情况下(有某个字段存的数据比较大)效率会比较低。自然就想到要是能改动了那个字段就更新那个字段就好了。实现这个功能的方法有3个:1、在xml中配置property的update属性,对应在annotation中设置@column的updatable。(不灵活)2、在xml中设置dynamic-update。但是在annotation中没有对应的设置。可以使用merge()方法。3、使用hql语句来更新(实用的方法)。
注意到不论是使用update方法还是hibernate自动更新的时候,发出的sql语句都是把整个表的所有字段都更新一遍。这样在有的情况下(有某个字段存的数据比较大)效率会比较低。自然就想到要是能改动了那个字段就更新那个字段就好了。实现这个功能的方法有3个:1、在xml中配置property的update属性,对应在annotation中设置@column的updatable。(不灵活)2、在xml中设置dynamic-update。但是在annotation中没有对应的设置。可以使用merge()方法。3、使用hql语句来更新(实用的方法)。
发表评论
-
分布式锁1 Java常用技术方案
2017-03-14 18:34 408转自:http://www.cnblogs.com/Pur ... -
ibatis传递map和数组
2017-01-23 12:23 623java代码: Map<String,O ... -
数据库Sharding的基本思想和切分策略
2016-05-24 22:40 508转自:http://blog.csdn.net/ ... -
数据库分库分表(sharding)系列(五) 一种支持自由规划无须数据迁移和修改路由代码的Sharding扩容方案
2016-05-24 22:37 3853作为一种数据存储层面 ... -
15天玩转redis —— 第二篇 基础的字符串类型
2016-03-09 00:11 439转自:http://www.cnblogs.co ... -
15天玩转redis —— 第三篇 无敌的列表类型
2016-03-09 00:09 550转自:http://www.cnblogs.co ... -
15天玩转redis —— 第一篇 开始入手
2016-03-08 23:59 343转自:http://www.cnblogs.com/huan ... -
数据库分库分表系统学习
2015-12-24 22:36 601转自:http://blog.sina.com. ... -
Mybatis分库分表扩展插件
2015-12-23 22:46 497转自:http://fangjialong.iteye. ... -
转:Mybatis分库分表扩展插件
2015-09-11 14:49 950原文地址:http://fangjia ... -
数据库分库分表(sharding)系列(五) 一种支持自由规划无须数据迁移和修改路由代码的Sharding扩容方案
2015-06-09 17:54 0版权声明:本文由本人撰写并发表于2012年9月份 ... -
数据库分库分表(sharding)系列(五) 一种支持自由规划无须数据迁移和修改路由代码的Sharding扩容方案
2015-06-09 09:46 0版权声明:本文由本人撰写并发表于2012年9月份的《程序员》 ... -
数据库分库分表(sharding)系列(四) 多数据源的事务处理
2015-06-09 00:10 564系统经sharding改造之后,原来单一的数据库会演变成多个 ... -
数据库分库分表(sharding)系列(三) 关于使用框架还是自主开发以及sharding实现层面的考量
2015-06-09 00:00 26当团队对系统业务和数据库进行了细致的梳理,确定了切分方案后, ... -
数据库分库分表(sharding)系列(三) 关于使用框架还是自主开发以及sharding实现层面的考量
2015-04-14 11:05 476当团队对系统业务和数据库进行了细致的梳理,确定了切分方案后 ... -
JTA 深度历险 - 原理与实现(非原创)
2014-11-30 00:03 522转自:http://www.ibm.com/develop ... -
Spring 配置多数据源实现数据库读写分离
2014-10-21 14:33 0转载自: http://uule ... -
J2EE事务并发控制策略总结(转)
2014-07-25 00:16 477本文结合hibernate以及JPA ...
相关推荐
Hibernate提供了CRUD(Create, Read, Update, Delete)操作,通过save()、get()、update()、delete()等方法,可以方便地进行数据的增删改查。此外,还有Criteria API和HQL(Hibernate Query Language)用于复杂查询...
【hibernate4框架学习笔记】 Hibernate是一款强大的ORM(Object-Relational Mapping)框架,它在Java开发中扮演着至关重要的角色,通过提供对象与数据库之间的映射,解决了对象模型和关系模型之间的“阻抗不匹配”...
《Hibernate学习文档集合》 Hibernate,作为Java领域中的一款强大且广泛应用的对象关系映射(ORM)框架,极大地简化了数据库操作。本集合包含了三个关键的学习文档,分别关注于Hibernate的操作基础、对象关系映射和...
比如,使用save()或saveOrUpdate()保存对象,load()或get()获取对象,update()更新对象,delete()删除对象。此外,还可以使用Criteria、HQL(Hibernate查询语言)进行复杂查询。 六、一对多、多对一、多对多关系...
3. **更新(Update)**:修改对象后,调用 `update()` 或 `merge()` 方法同步数据库。 4. **删除(Delete)**:`delete()` 方法用于从数据库中移除对象。 **查询机制** - **HQL(Hibernate Query Language)**:...
4. Hibernate的CRUD操作,理解如何保存、查询、更新和删除数据。 5. Hibernate的查询机制,包括HQL和Criteria API的使用。 6. Hibernate的缓存机制,了解第一级缓存和第二级缓存的概念及应用场景。 7. Hibernate的...
【hibernate-代码学习示例】是一个关于Hibernate框架的实战教程,主要针对开发者提供深入理解和使用Hibernate的实例。Hibernate是Java开发中的一个流行对象关系映射(ORM)框架,它简化了数据库操作,使开发者可以更...
**Hibernate学习笔记与大纲** Hibernate 是一款开源的Java语言下的对象关系映射(ORM)框架,它极大地简化了数据库操作,使得开发人员可以使用面向对象的方式处理数据,而无需过多关注底层的SQL语句。本笔记将深入...
2. **Hibernate_02**: 在这个阶段,开发者可能学习了如何在Hibernate中使用Session接口进行数据操作,比如保存(save()或persist())、更新(update())、删除(delete())和加载(get()或load())对象。此外,还...
5. **CRUD操作**: 插入(save()或saveOrUpdate())、更新(update())、查询(load()、get()、Criteria、HQL等)、删除(delete())。 6. **事务处理**: Hibernate支持自动和手动的事务管理,确保数据的一致性。 **...
对于初学者来说,学习 Hibernate 可以简化数据库操作,提高开发效率。以下是对 Hibernate 学习过程的详细说明: 一、配置 Hibernate 与 MyEclipse 连接 在开始使用 Hibernate 之前,你需要先配置 Hibernate 与...
1. `save()` 和 `update()`: `save()`用于将新对象持久化到数据库,如果对象已经存在,可以使用`update()`来更新其状态。 2. `delete()`: 删除指定的对象,将其从数据库中移除。 3. `get()` 和 `load()`: `get()`...
在学习笔记中,开发者可能会展示如何进行基本的Create、Read、Update、Delete(CRUD)操作。例如,创建一个新的对象并保存到数据库,从数据库读取对象,更新对象属性后再次保存,以及删除对象。这些操作都是通过`...
`update()`方法中,首先开启事务,执行更新操作(如`session.update(userinfo)`),然后提交事务,如果发生错误则回滚。 9. **SessionFactory**: `HibernateSessionFactory`通常是一个工厂类,负责提供`Session`...
学习Hibernate,你需要掌握: 1. **配置Hibernate**:包括配置hibernate.cfg.xml文件,定义数据源、SessionFactory等。 2. **实体类和映射文件**:创建Java类表示数据库表,并通过Hibernate的XML映射文件或注解...
通过Session的open()方法建立连接,save()、update()、delete()方法进行CRUD操作,而find()和load()方法用于查询。 6. **Criteria查询**:除了编写SQL语句外,Hibernate还提供了Criteria API,通过构建查询条件对象...