在hibernate中, Session.update()方法的修改会把所有的字段更新一遍,但是我们在开发中会常用到只修改部分数据。
public void add(){ Session session=HibernateuUtils.getSessionFactory.getCurrentSession(); session.beginTransaction(); User user=(User)session.get(User.class,1); user.setName("张三"); session.update(); session.beginTransaction().commit(); }
现这种会所有的数据全部更新一遍;
在控制台打印出的sql语句如下:
Hibernate: update User set age=?, birthday=?, name=?, title=? where id=?
在上面的例子中可以看出,我们只需要修改name属性,但是从打印的sql语句得出,update()方法是把所有的属性够修改了一遍。这样如果我们的数据中有文本类型的大量数据,它的执行效率就会很低。
改善它有三种方法:
1、XML中设置property 标签 update = "false" ,如下:我们设置 age 这个属性在更改中不做更改。
<property name="age" update="false"></property>
在Annotation中 在属性GET方法上加上@Column(updatable=false)
@Column(updatable=false) public int getName() { return name; }
但是这种方式不灵活
2、第2种方法··使用XML中的 dynamic-update="true"
<class name="com.sccin.entity.Student" table="student" dynamic-update="true">
<class name="com.sccin.entity.Student" table="student" dynamic-update="true">
<class name="com.hibernnate.User" table="sys_User" dynamic-update="true">
3、使用HQL语句
public void update(){ Session session = HibernateUitl.getSessionFactory().getCurrentSession(); session.beginTransaction(); Query query = session.createQuery("update User t set t.name = 'yangtianb' where id = 1"); query.executeUpdate(); session.getTransaction().commit(); }
打印的sql语句是:
Hibernate: update User set name='yangtianb' where id=1
相关推荐
面试 ssh struts hibern spring等方面整理的面试题;
SpringMVC精品资源--基于WebScoket协议实现的即时聊天项目。后台使用SpringMVC和Hibern
【作品名称】:毕业设计,基于Struts2 + Spring + Hibern实现ACM在线评测系统,可以支持C、C++和Java 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或...
为了管理方便,该系统中Struts Spring的配置文件采用多模块的集成块集成开发方式完成,主要按照功能模块分配。 主要功能描述: 商品展示:主要分为商品预览、商品展示、分类检索功能。 购物车:主要分为添加...
开源项目Hibernate是一个实现对象/关系映射的框架,它在Java对象和关系数据库中数据之间建立相应的映射关系,简化了数据库访问操作。将此框架应用于学生信息管理系统中,可充分发挥其优点,提高系统开发效率。
Spring,Struts,Hibern,三合一框架在MyEclipse开发
实验要求: (1) 整合Struts2、Spring和Hibernate框架 (2) 实现“登录”功能 (3) 实现“学生信息管理”功能 (4) 实现“学生成绩管理”功能 (5) 实现分页功能
中小型企业在线办公系统,整合Struts2.1+Hibern3.3+Spring2.5
疯狂Ajax讲义 Prototype/jQuery+DWR+Spring+Hibern
资源名称:Java项目开发案例精粹内容简介:本书是目前流行的Java开发的...本书使用的开发技术包括Swing、JSP、Servlet、JavaBean、Struts、Struts2、Hibern 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
Java Web高级编程 涵盖WebSockets、Spring Framework、JPA Hibernate和Spring Security, 有目录,很清晰
官方的很少有官方有用的实用程序GetConsolidateFiles.py ==>获取目录名称作为输入,并从文件夹中的所有子目录中获取所有文件ListOfFilesDir.pyw ==>给定文件夹的目录(及其子目录)中所有文件的列表。输出将在Text...
精通 Hibern一本ate:Java 对象持久化技术详解(第2版)是
和声2 Grails Hibernate 搜索插件 这个插件旨在通过几个步骤将 Hibernate Search 功能集成到 Grails 中。...开始,你可以开始一个新的项目: ...compile("org.grails.plugins:hibernate-search:2.3.0") ...hibern
为了建立一个健壮的Java EE应用,应该将所有对数据源的访问操作抽象封装在一个公共API中。用程序设计的语言来说,就是建立一个接口,接口中定义了此应用程序中将会用到的所有事务方法。在这个应用程序中,当需要和...
《Hibernate实战》(第2版)是毋庸置疑的Hibernate和ORM(对象/关系映射)权威著作,详细讲述了Hibernate3.2、JavaPersistence和EJB...书中处处闪烁着作者超凡的真知灼见,将大大升华读者对ORM乃至企业级应用开发的理解。
主要应用java基础、My SQL数据库、Servlet技术、JSP页面设计、JQuery、ajax、maven、freemarket、hibern ate、struts2、spring、xml等技术完成网站与游戏后台的开发 四、实习安排 第一阶段:linux 第二阶段:java...
通过示例讲解从数据库到实体类,从实体类到数据库的映射关系,讲解包括:集合映射和继承映射。
Spring Boot Druid Mybatis Schedule动态数据源JPA 本系列是spring-boot相关的一些列子,比如spring-boot集成druid,以及druid的动态数据源切换, spring-boot 集成mybatis,spring-boot...6,spring-boot集成Hibern