Hibernate 修改数据的实例详解

Hibernate 修改数据

1.用 HQL方式来更新

在 这里修改 Person 的name 和age 通过 id 标识

Session currentSession = H3Utils.getCurrentSession();
  currentSession.beginTransaction();
  //创建 HQL
  String hqlString = "update Person p set p.name=? , p.age=? where p.id=?";
  //构建 Query
  Query query = currentSession.createQuery(hqlString);
  //设置参数
  query.setParameter(0, "小明");
  query.setParameter(1, 18);
  query.setParameter(2, 1);
  //更新
  query.executeUpdate();
  currentSession.getTransaction().commit();

2 使用 HQL方式来更新

public void updateFunction2() {
  Session currentSession = H3Utils.getCurrentSession();
  currentSession.beginTransaction();
  //创建SQL
  String sql = "UPDATE t_person_list SET name='cv',age=2 WHERE id=4" ;
  //执行
  currentSession.createSQLQuery(sql).executeUpdate();
  //提交
  currentSession.getTransaction().commit();
  }

3 使用 OID方式来更新

 Session currentSession = H3Utils.getCurrentSession();
  currentSession.beginTransaction();

  Person person = new Person();
  person.setId(44);
  person.setName("ccb");
  person.setAge(90);

  currentSession.update(person);

  currentSession.getTransaction().commit();
  • 使用 session.update()方法,根据主键去更新数据,如果数据存在,那么就可以更新,如果不存在,抛异常报错
  • 可以使用 session.saveOrUpdate(person);方法,根据主键去更新数据,如果数据存在,那么就可以更新,如果不存在,就执行 insert

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

时间: 2017-10-08

hibernate增删改查操作代码

Hibernate对数据删除操作 删除User表中个一条数据,是需要更具User表的主键id值来删除的.首先根据id值向数据库中查询出来对应的对象.可以采用两种方式一是session的get方法,一个是session的load方法. Session的Get方法:调用这个方法会返回一个Object对象.然后我们对其强制转换.Useruser = (User)session.get(User.class," 402881e5441c035e01441c0360510003"); 当我们传递

Hibernate 主清单文件配制的详细介绍

Hibernate 主清单文件配制的详细介绍 1 Hiernate 清单配制文件 方式一 在工程src目录下创建 hibernate.cfg.xml 文件 Hiernate 开始加载时,会默认的方式去工程src目录下扫描 hibernate.cfg.xml文件,然后加载配制 public class H3Utils { private static SessionFactory factory = new Configuration().configure().buildSessionFacto

Hibernate5新特性介绍

在hibernate5中,有了一些新的变动: 新引导 API Spatial/GIS 支持 Java 8 支持 扩展 AUTO id 生成支持 命名策略分离 属性转换器支持 更好的 "bulk id table" 支持 事务管理 模式工具链 Session API类化 改进 OSGi 支持 改进 bytecode 增强功能 新的引导API 用来引导Hibernate(建立一个SessionFactory)的经典方式一直都是利用Configuration配置类.从

Hibernate实现悲观锁和乐观锁代码介绍

四种隔离机制不要忘记:(1,2,4,8) 1.read-uncommitted:能够去读那些没有提交的数据(允许脏读的存在) 2.read-committed:不会出现脏读,因为只有另一个事务提交才会读取来结果,但仍然会出现不可重复读和幻读现象. 4.repeatable read: MySQL 默认.可重复读,读数据读出来之后给它加把锁,其他人先别更新,等我用完了你再更新.你的事务没完,其他事务就不可能改这条记录. 8.serializable:序列化,最高级别.一个一个来,不去并发.效率最低

struts+spring+hibernate三个框架的整合

准备三个框架结合的lib包 Spring3结合Struts2的步骤如下: 1:开启Struts2结合Spring3,在struts.xml中添加如下语句: java代码: <constant name="struts.objectFactory" value="spring"/> 2:在web.xml中添加listener,如下: java代码: <listener> <listener-class> org.springfram

hibernate和mybatis对比分析

第一章     Hibernate与MyBatis Hibernate 是当前最流行的O/R mapping框架,它出身于sf.net,现在已经成为Jboss的一部分. Mybatis 是另外一种优秀的O/R mapping框架.目前属于apache的一个子项目. MyBatis 参考资料官网:http://www.mybatis.org/core/zh/index.html Hibernate参考资料: http://docs.jboss.org/hibernate/core/3.6/refe

hibernate4基本配置方式详解

可编程的配置方式-1 如果在配置cfg.xml的时候,不想在里面配置hbm.xml怎么办呢?可在程序里使用可编程的配置方式,也就是使用程序来指定在cfg.xml里面的配置信息,不推荐这种方式.如下: Configuration cfg= new Configuration() .addResource("Item.hbm.xml") .addResource("Bid.hbm.xml"); 一个替代方法(有时是更好选择)是,指定被映射的类,让Hibernate帮你寻

Spark三种属性配置方式详解

随着Spark项目的逐渐成熟, 越来越多的可配置参数被添加到Spark中来.在Spark中提供了三个地方用于配置: 1.Spark properties:这个可以控制应用程序的绝大部分属性.并且可以通过 SparkConf对象或者Java 系统属性进行设置: 2.环境变量(Environment variables):这个可以分别对每台机器进行相应的设置,比如IP.这个可以在每台机器的$SPARK_HOME/ conf/spark-env.sh脚本中进行设置: 3.日志:所有的日志相关的属性可以

关于react-router的几种配置方式详解

本文介绍关于react-router的几种配置方式详解,分享给大家,具体如下: 路由的概念 路由的作用就是将url和函数进行映射,在单页面应用中路由是必不可少的部分,路由配置就是一组指令,用来告诉router如何匹配url,以及对应的函数映射,即执行对应的代码. react-router 每一门JS框架都会有自己定制的router框架,react-router就是react开发应用御用的路由框架,目前它的最新的官方版本为4.1.2.本文给大家介绍的是react-router相比于其他router

spring、mybatis 配置方式详解(常用两种方式)

在之前的文章中总结了三种方式,但是有两种是注解sql的,这种方式比较混乱所以大家不怎么使用,下面总结一下常用的两种总结方式: 一. 动态代理实现 不用写dao的实现类 这种方式比较简单,不用实现dao层,只需要定义接口就可以了,这里只是为了记录配置文件所以程序写的很简单: 1.整体结构图: 2.三个配置文件以及一个映射文件 (1).程序入口以及前端控制器配置 web.xml <?xml version="1.0" encoding="UTF-8"?> &

基于vue中css预加载使用sass的配置方式详解

1.安装sass的依赖包 npm install --save-dev sass-loader //sass-loader依赖于node-sass npm install --save-dev node-sass 2.在build文件夹下的webpack.base.conf.js的rules里面添加配置,如下红色部分 { test: /\.sass$/, loaders: ['style', 'css', 'sass'] } <span style="color:#454545;"

linux网络NAT配置方式详解

本文为大家分享了linux网络NAT配置方式,供大家参考,具体内容如下 NAT访问的权限如下: 外网不可以访问虚拟机,主机和虚拟机可以互访,网络和主机也可以互访: 1.打开虚拟机--编辑--虚拟网络编辑器--. 2. 3.进入虚拟机的linux系统点击网络 4. 5.点击ipv4 6.配置虚拟机的ip ip地址前三位要和网关前三位保持一致 子网掩码都是一样的 网关要和虚拟机编辑器的网关保持一致 6.1.查看网关 7.打开本地网络连接--更改适配器--找到vMware8 有的可能不一样 把鼠标放上

asp.net core中灵活的配置方式详解

前言 asp.net core支持外部文件和命令行参数方式来配置系统运行所需要的配置信息,我们从下面两个常用场景来具体说下具体使用方法. 一.监听地址及端口配置 1,命令行方式 asp.net core系统通过命令行方式启动,使用的命令如下: dotnet run 上面的命令直接在源代码目录下执行,便可以编译程序并运行.那对于已经发布好的程序,就不能使用上面的指令了,应该使用下面的指令: dotnet 程序集文件名(程序集文件名就是程序发布后生成的dll文件) 上面两个指令都能够启动应用程序.程

react路由配置方式详解

本文介绍了react路由配置,最近刚开始学,分享给大家,顺便给自己留个笔记. 包含了LInk跳转以及js触发跳转并传参. 这是项目的目录结构,主要的代码都在src目录下,src下面新建一个containers文件夹放我们的一些组件,router文件夹是配置路由用的. 按照顺序来写:detail文件夹下的代码 import React from 'react' class Detail extends React.Component { render() { return ( <p>Detail

hibernate4快速入门实例详解

Hibernate是什么 Hibernate是一个轻量级的ORMapping框架 ORMapping原理(Object RelationalMapping) ORMapping基本对应规则: 1:类跟表相对应 2:类的属性跟表的字段相对应 3:类的实例与表中具体的一条记录相对应 4:一个类可以对应多个表,一个表也可以对应对个类 5:DB中的表可以没有主键,但是Object中必须设置主键字段 6:DB中表与表之间的关系(如:外键)映射成为Object之间的关系 7:Object中属性的个数和名称可

Mybatis 创建方法、全局配置教程详解

总体介绍:MyBatis实际上是Ibatis3.0版本以后的持久化层框架[也就是和数据库打交道的框架]! 和数据库打交道的技术有: 原生的JDBC技术--->Spring的JdbcTemplate技术 这些工具都是提供简单的SQL语句的执行,但是和我们这里学的MyBatis框架还有些不同, 框架是一整套的东西,例如事务控制,查询缓存,字段映射等等. 我们用原生JDBC操作数据库的时候都会经过: 编写sql---->预编译---->设置参数----->执行sql------->