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

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

(0)

相关推荐

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

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

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

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

  • 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

  • hibernate增删改查操作代码

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

  • Hibernate5新特性介绍

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

  • hibernate4基本配置方式详解

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

  • 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 修改数据的实例详解

    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

  • Vuejs第九篇之组件作用域及props数据传递实例详解

    本篇资料来于官方文档: http://cn.vuejs.org/guide/components.html#Props 本教程是小编结合官方文档整理的一套更加细致,代码更多更全的教程,特别适合新手阅读. props数据传递 ①组件实例的作用域: 是孤立的,简单的来说,组件和组件之间,即使有同名属性,值也不共享. <div id="app"> <add></add> <del></del> </div> <sc

  • vue组件中使用props传递数据的实例详解

    在 Vue 中,父子组件的关系可以总结为 props向下传递,事件向上传递.父组件通过 props 给子组件下发数据,子组件通过事件给父组件发送消息.看看它们是怎么工作的.  一.基本用法 组件不仅仅是要把模板的内容进行复用,更重要的是组件间要进行通信. 在组件中,使用选项props 来声明需要从父级接收的数据, props 的值可以是两种, 一种是字符串数组,一种是对象. 1.1 字符串数组: <div id="app4"> <my-component4 messa

  • 对python requests发送json格式数据的实例详解

    requests是常用的请求库,不管是写爬虫脚本,还是测试接口返回数据等.都是很简单常用的工具. 这里就记录一下如何用requests发送json格式的数据,因为一般我们post参数,都是直接post,没管post的数据的类型,它默认有一个类型的,貌似是 application/x-www-form-urlencoded. 但是,我们写程序的时候,最常用的接口post数据的格式是json格式.当我们需要post json格式数据的时候,怎么办呢,只需要添加修改两处小地方即可. 详见如下代码: i

  • python爬取天气数据的实例详解

    就在前几天还是二十多度的舒适温度,今天一下子就变成了个位数,小编已经感受到冬天寒风的无情了.之前对获取天气都是数据上的搜集,做成了一个数据表后,对温度变化的感知并不直观.那么,我们能不能用python中的方法做一个天气数据分析的图形,帮助我们更直接的看出天气变化呢? 使用pygal绘图,使用该模块前需先安装pip install pygal,然后导入import pygal bar = pygal.Line() # 创建折线图 bar.add('最低气温', lows) #添加两线的数据序列 b

  • Python 修改CSV文件实例详解

    目录 前言 Python 修改CSV文件 前言 由于 CSV 文件仅仅是简单的文本文件,因此更新 CSV 文件中内容的最佳方式是首先读取文件中的数据,并将它们处理为 Python 内部对象,进行更改,然后以相同的格式覆盖原始数据. Python 修改CSV文件 在本节中,我们将学习如何使用 Python 修改 CSV 文件中的数据. 假设在CSV文件中有以下数据,其中用户 '1' 对电影 'Star Wars' 的评分有误,其实际评分为 7.9,因此需要修改此文件. User name Movi

  • C#中WPF ListView绑定数据的实例详解

    C#中WPF ListView绑定数据的实例详解 WPF中ListView用来显示数据十分方便, 我们可以将它分成几个列,每一个列用来显示一条数据,但是又是在一方之中. 那么怎样实现这样的效果的呢,这就要用绑定了. 我们先来看一看他的xmal代码 <ListView Name="receiveList" Grid.Row="0"> <ListView.View> <GridView> <GridView.Columns>

  • 微信小程序 本地数据存储实例详解

    微信小程序 本地数据存储实例详解 前言 如果您在看此文章之前有过其他程序的开发经验,那一定会知道一般例如安卓或者苹果的原生APP都提供了本地的存储功能,甚至可以使用sqlite数据库来做存储.可是微信的小程序框架基于微信本身,其实际运行环境只是在浏览器里面,所以不会提供那么丰富的数据存储实力.但html5开始已经可以在浏览器里面存储数据,好在微信的小程序给这个功能封装好了,这样我们可以使用数据存储. 每个微信小程序都可以有自己的本地缓存,可以通过 wx.setStorage(wx.setStor

  • Python 处理数据的实例详解

    Python 处理数据的实例详解 最近用python(3.2的版本)写了根据特定规则,处理数据的一个小程序,用到了一些python常用的基础知识,在此总结一下: 1,python读文件 2,python写文件 3,python的流程控制 4,python的for循环 5,python的集合,或字符串里判断是否存在某个元素 6,python的逻辑或,逻辑与 7,python的正则过滤 8,python的字符串忽略空格,和以某个字符串开头和按某个字符拆分成list python的打开文件的模式: 关

  • java 分割csv数据的实例详解

    java 分割csv数据的实例详解 实际需要解析的csv中很多都是从excel中转过来的,数据中本身包含了逗号的数据导致split的过程中发现数据对不上,因此,基于这种特性,重新写了一个csv数据的分割方法: 实现代码: public static String[] split(String line) { List<String> list = new ArrayList<>(); int start = 0; int end = -1; while(true) { start

随机推荐