1.session.save()方法 1).session.save()方法会使一个对象从临时状态转变为持久化状态. 2).session.save()方法会赋予持久化对象的OID属性一个ID值,以对应数据库该条数据. 3).在session.flush()被调用时,session.save()方法会发送一条insert SQL语句. 4).持久化对象的OID值不能被修改,尝试修改会抛出异常. 2.session.persist()方法 1).session.persist()和save()方法…
1. 持久化对象的状态: 站在持久化的角度,Hibernate 把对象分为四种状态:持久化状态,临时状态,游离状态,删除状态 Session 的特定方法能使对象从一个状态转到另一个状态 临时对象: 在使用代理主键的情况下,OID 通常为 null 不处于 Session 的缓存中 在数据库中没有对应的记录 持久化对象(也叫托管): OID 不为 null 位于 Session 缓存中 若在数据库中已经有和其对应的记录,持久化对象和数据库中的相关记录对应 Session 在 flush 缓存时,会…
本文介绍Hibernate Session的delete()方法.delete()方法用于从数据库中删除与Java对象对应的记录.对应游离对象和持久化对象,delete语句会做出不同的反应. AD: 2013大数据全球技术峰会低价抢票中 delete()方法用于从数据库中删除与Java对象对应的记录.如果传入的参数是持久化对象,Session就计划执行一个delete语句.如果传入的参数是游离对象,先使游离对象被Session关联,使它变为持久化对象,然后计划执行一个delete语句.值得注意的…
使一个游离对象转变为持久化对象.例如以下代码在session1中保存了一个Customer对象,然后在session2中更新这个Customer对象: Customer customer = new Customer(); customer.setName("Tom"); Session session1 = sessionFactory.buildSession(); Transaction tx1 = session.beginTransaction(); session1.sav…
一.持久化对象的状态        站在持久化的角度, Hibernate 把对象分为 4种状态: 持久化状态,临时状态,游离状态,删除状态.Session 的特定方法能使对象从一个状态转换到另一个状态.   •临时对象(Transient): –在使用代理主键的情况下, OID 通常为null –不处于 Session的缓存中 –在数据库中没有对应的记录 •持久化对象(也叫"托管")(Persist): –OID 不为null –位于 Session缓存中 –若在数据库中已经有和其对…
Session对象:数据库的核心对象 增删改查 ...java public class UserDao { public void addUser(User user) { //使用hibernate //得到配置信息 Configuration config = new Configuration().configure(); //创建sessionFactiory对象 SessionFactory sessionFactory = config.buildSessionFactory();…
1.关系数据库按主键区分不同记录. create table CUSTOMERS (ID int promary key not null, NAME varchar(15));     insert into CUSTOMERS values(1, 'Tom');     insert into CUSTOMERS values(3, 'Tom');   2.Java语言按内存地址区别不同的对象. Customer c1 = new Customer("Tom");     Cust…
先看写代码的方法: @Test     public void testUpdate3() {                         Teacher t = new Teacher();         t.setId(1);//指定了主键也可以直接更新         t.setName("zhanglaoshi");                 Session session2 = sessionFactory.getCurrentSession();        …
今天在使用session.save(),进行插入数据操作时,一直没有成功,也没有报错.后来发现是因为没有创建事务,提交事务的原因 你对flush和commit的意思没有理解到:1,flush代表刷新,同步一级缓存中的对象到数据库中,仅仅代表把SQL刷到了数据库中,2,commit代表提交事务,tx.commit之后,之前发送的SQL才真正提交了,数据表里面才有值:3,在默认情况下,commit之前都要自动调用flush,所以:1,session.save();session.flush()只是把…
Session 概述 •Session 接口是 Hibernate 向应用程序提供的操纵数据库的最主要的接口, 它提供了基本的保存, 更新, 删除和加载 Java 对象的方法. •Session 具有一个缓存, 位于缓存中的对象称为持久化对象, 它和数据库中的相关记录对应. Session 能够在某些时间点, 按照缓存中对象的变化来执行相关的 SQL 语句, 来同步更新数据库, 这一过程被称为刷新缓存(flush) •站在持久化的角度, Hibernate 把对象分为 4 种状态: 持久化状态,…