`

hibern中的怎么更新某个字段

 
阅读更多

在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

    它们在Java Web开发中非常常见,经常被用于构建企业级应用系统。 - **Spring**:Spring框架的核心功能是依赖注入(DI)和面向切面编程(AOP)。依赖注入使得对象之间的依赖关系可以在运行时动态地解决,降低了组件...

    基于Struts2 + Spring + Hibern实现ACM在线评测系统,可以支持C、C++和Java

    【作品名称】:毕业设计,基于Struts2 + Spring + Hibern实现ACM在线评测系统,可以支持C、C++和Java 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或...

    电子商务交易平台(struts+hibern+spring)

    为了管理方便,该系统中Struts Spring的配置文件采用多模块的集成块集成开发方式完成,主要按照功能模块分配。 主要功能描述: 商品展示:主要分为商品预览、商品展示、分类检索功能。 购物车:主要分为添加...

    SpringMVC精品资源--基于WebScoket协议实现的即时聊天项目。后台使用SpringMVC和Hibern.zip

    【标题】中的“SpringMVC精品资源--基于WebScoket协议实现的即时聊天项目”表明这是一个关于使用SpringMVC框架构建的Web应用程序,其中整合了WebSocket协议来实现实时通信功能,通常用于构建在线聊天或者实时数据...

    利用Hibernate框架实现学生管理信息系统

    在系统中,所有的业务对象都会被映射到数据库的相关表中。具体来说,在应用Hibernate框架时,需要经历以下几个步骤: 1. **编写配置文件**:配置文件包含了数据库连接的基本信息。Hibernate支持两种类型的配置文件...

    Struts2上传图片存数据库

    在数据库操作前,确保已经正确配置了Hibernate的SessionFactory,并且实体类中有一个BLOB类型的字段用于存储图片。 在数据库操作部分,我们需要使用Hibernate的Session对象来保存或更新数据。如果图片是新上传的,...

    Struts2,Spring与Hibernate整合应用,学生成绩管理系统.doc

    - 在`struts.xml`中定义Action,确保class属性指向Spring配置文件中定义的Action Bean ID。 8. **分页功能实现** - 可以使用Struts2的分页插件或者自定义分页逻辑。 - 在查询操作中加入分页参数处理,返回指定...

    SpringBoot第六节

    在本节中,我们将深入探讨SpringBoot框架的第六个主题,该主题紧密衔接上一节的内容,即SpringBoot第五节。...例如,如果你的项目中有`spring-boot-starter-data-jpa`依赖,SpringBoot会自动配置JPA和Hibern

    Java Web高级编程 涵盖WebSockets、Spring Framework、JPA Hibernate和Spring Security

    在Java Web开发中,可以使用诸如Java WebSocket API这样的技术来实现WebSockets应用。 Spring Framework是一个开源的Java平台,它最初是为了解决企业应用开发中的复杂性而设计的。Spring框架通过提供一系列的模块,...

    hibernate-符合Java习惯的关系数据库持久化

    4. **Session接口:** Session是Hibernate的主要工作接口,用于执行CRUD操作(创建、读取、更新、删除)。它提供了事务管理和对象状态管理功能。 5. **Query和Criteria API:** Hibernate提供了HQL(Hibernate ...

    hibernate5官方文档样例代码包括配置与注解两个方案

    在Hibernate5中,它提供了两种主要的实体管理方式:传统的XML配置和更现代的注解方式。本压缩包文件“hibernate5官方文档样例代码”涵盖了这两种方法,帮助开发者深入理解Hibernate的工作原理。 **配置方案** 在...

    hibernate 简约范例

    - **更新(Update)**:修改对象属性后调用`update()`方法。 ```java user.setName("Jane"); session.update(user); ``` - **删除(Delete)**:调用`delete()`方法删除对象。 ```java session.delete(user); ```...

    hibernate-validator-5.2.2

    在5.2.2版本中,该框架进一步提升了性能和易用性,使其成为企业级应用开发中的必备工具。本文将深入探讨Hibernate Validator的核心概念、主要功能以及在实际应用中的使用技巧。 一、Hibernate Validator概述 ...

    hibernate 自己做的实例

    开始Hibernate实践的第一步是搭建项目环境,这包括添加必要的库依赖、配置Hibernate的hibern.cfg.xml文件以及实体类的映射文件(如.hbm.xml)。同时,需要创建数据库并建立相应的表结构。 3. **实体类与数据表映射...

    老款掉牙SSH 例子下载 搭建(struts2 spring hibernate)整合

    3. **DAO(Data Access Object)**:数据访问对象,用于封装数据库操作,使用Hibernate提供的API来执行CRUD(创建、读取、更新、删除)操作。 4. **Service**:服务层,处理业务逻辑,通常会调用DAO层的方法来操作...

    hibernate-extensions-2.1.2.zip

    这意味着如果你的项目使用的是更高版本的Hibernate,可能需要寻找与之兼容的扩展或更新版本。`hbm2java`工具极大地减少了手动编写Java持久化类的工作量,使得模型层的维护变得更加便捷。 2. **ddl2java**:此工具将...

    hibernate.zip

    3. **实体类和注解**: Hibernate支持使用注解来标注实体类,例如`@Entity`表示该类是一个实体,`@Table`定义对应的数据库表,`@Id`标识主键字段,`@GeneratedValue`指定主键生成策略,`@Column`定义列等。...

    hibernate-validator

    开发者可以将这些注解直接应用到字段或方法上,以定义验证规则。 2. **自定义验证注解**: 除了预定义的注解,Hibernate Validator 还允许开发者创建自定义验证注解,通过实现`ConstraintValidator`接口来定义验证...

    基于SpringBoot的Web快速开发框架.docx

    【SpringBoot】是一个由Pivotal团队开发的Java框架,其设计目的是简化新Spring应用程序的初始搭建以及开发过程。SpringBoot并非Spring框架...在【数据库操作】上,SpringBoot集成了JPA(Java Persistence API)和Hibern

    hibernate逆向工程

    - `Detect optimistic lock columns`:检测并生成乐观锁相关的字段。 - `Detect many-to-many tables`:检测多对多关联表。 - `Detect one-to-one associations`:检测一对一关联。 ##### 3.2 配置实体生成 - **...

Global site tag (gtag.js) - Google Analytics