`
QmoreCzs
  • 浏览: 9332 次
社区版块
存档分类
最新评论

学习笔记6——hibernate中update方法

 
阅读更多
最基础用法:
	@Test
	public void  testUpdate1(){
		Session session = sessionFactory.getCurrentSession() ;
		session.beginTransaction() ;
		Teacher t = (Teacher)session.get(Teacher.class, 1) ;
		session.getTransaction().commit() ;
		t.setName("zhanglaoshi") ;
		
		
		Session session2 = sessionFactory.getCurrentSession() ;
		session2.beginTransaction() ;
		session2.update(t) ;
		session2.getTransaction().commit() ;

	}

同一个session范围内,当用get方法取得一个对象信息后,对该对象内容进行改变时,也会发生update效果,这是因为get方法取得对象为persisent状态,hibernate会自动进行session缓存(persisent状态才有)与数据库是否同步,否则更新。
	@Test
	public void  testUpdate2(){
		Session session = sessionFactory.getCurrentSession() ;
		session.beginTransaction() ;
		Teacher t = (Teacher)session.get(Teacher.class, 1) ;
		t.setName("zhanglaoshi22") ;
		session.getTransaction().commit() ;

	}
	


以上更新数据库时,所有字段都进行更新,当某个字段存放内容很大,如一篇文章时候,还进行字段全部更行就会浪费很多资源了,因此我们可以用以下方法进行部分字段更改:
a)XML设定property标签的update属性,annotation设定@Column的updatable=false属性,这种方法一旦设定,该字段就在更新时候忽略掉,无法更新,不灵活。
b)使用XML中的dynamic-update,只能在同一个session中生效(更新persisent状态对象才行)
<hibernate-mapping package="com.bjsxt.hibernate.vo" >
	<class name="Student" dynamic-update="true">
       <id name="id">
			<generator class="native"/>
		</id>
		<property name="name"></property>
		 <property name="age"></property>
	</class>
</hibernate-mapping>

c)使用HQL(建议)
分享到:
评论

相关推荐

    web学习笔记 —— DAO设计模式

    2. DAO接口:定义了对数据库操作的方法,例如`save()`, `delete()`, `update()`, `find()`等。 3. DAO实现类:实现了DAO接口,提供了具体的数据库操作实现,通常使用SQL语句或者ORM框架(如Hibernate、MyBatis)来...

    hibernate 学习笔记4

    ### Hibernate 学习笔记4 —— 多对多关系与多态映射 #### 多对多关系 在 Hibernate 中处理多对多关系时,通常采用一种称为“连接表”或“关联表”的方法来实现两个实体之间的多对多关联。这种设计方式较为常见且...

    Hibernate5.0-4天学习笔记.rar

    首先,我们需要了解Hibernate的核心组件——SessionFactory和Session,它们是Hibernate工作流程中的关键。SessionFactory是线程安全的,负责创建Session实例,而Session则是与数据库进行交互的接口。接下来,我们...

    黑马程序员 hibernate 2016版讲义和笔记(4天全)

    《Hibernate技术深度剖析——基于黑马程序员2016版讲义与笔记》 Hibernate,作为Java领域中的一个著名持久化框架,为开发者提供了强大的对象关系映射(ORM)功能,极大地简化了数据库操作。本资料集是黑马程序员...

    Hibernate3框架系列 [ 1 ]

    在这一系列的文章中,我们将深入探讨Java领域中的著名对象关系映射(ORM)框架——Hibernate3。ORM框架的主要目标是通过提供一种编程模型,使得开发人员可以使用面向对象的方式来操作数据库,而无需直接编写SQL语句...

    hibernate学习笔记

    ### Hibernate学习笔记:对象/关系数据库映射(二)——集合映射 #### 1. 集合映射概述 在对象/关系映射(ORM)领域中,Hibernate 是一个非常强大的工具,它能够帮助开发者高效地进行 Java 对象与数据库记录之间的...

    黑马程序员_hibernate框架开发2016版讲义和笔记资料_day03

    《Hibernate框架开发详解——以黑马程序员2016版讲义和笔记为引导》 Hibernate,作为Java领域中广泛使用的对象关系映射(ORM)框架,极大地简化了数据库操作,使得开发者可以更专注于业务逻辑而不是繁琐的数据访问...

    Hibernate学习笔记

    根据提供的文件信息,我们可以整理出一系列关于Hibernate的重要知识点。这些知识点包括了Hibernate的...通过上述知识点,我们可以全面了解Hibernate的工作原理及使用方法,这对于深入学习和实际应用都是非常有帮助的。

    hibernate培训第二天

    【hibernate培训第二天】——深入理解Hibernate框架 ...在“达内hibernate培训笔记”的Day2中,学员们将通过深入学习这些知识点,逐步掌握Hibernate的核心技术和使用技巧,为后续的项目开发打下坚实的基础。

    Java基于springboot的教学资料管理系统的实现.rar

    本项目——“Java基于SpringBoot的教学资料管理系统”旨在提供一个高效、便捷的平台,帮助管理员和用户对各类教学资源进行有效管理。下面将详细阐述系统的核心功能以及实现原理。 一、系统架构与技术选型 本系统...

Global site tag (gtag.js) - Google Analytics