首页 > 代码库 > Hibernate查询uodate-megre-saveorupdate-delete方法使用
Hibernate查询uodate-megre-saveorupdate-delete方法使用
Hibernate查询uodate-megre-saveorupdate-delete方法使用
update这个方法的使用1:先加载然后再修改
/** * 修改通过get方法获得的持久化对象 */ private static void update1() { Configuration config = new Configuration().configure(); ServiceRegistry sr = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry(); SessionFactory sessionFactory = config.buildSessionFactory(sr); Session session = sessionFactory.openSession(); Transaction tx = session.beginTransaction(); Person p = (Person)session.get(Person.class, 1); System.out.println("-update1-修改前--"+p); p.setName("admin1"); //如果是一个跟session关联的持久化状态的对象,可以不需要调用update方法,也能够在session.close()前执行更新操作 session.update(p); tx.commit();//提交的时候才执行SQL session.close(); System.out.println("---------end--------"); }
update方法的使用2:
/** * 更新通过new 创建的对象 * 需要注意: * 1:id 必须有,并且必须对应数据库表的某一条记录 */ private static void update2() { Configuration config = new Configuration().configure(); ServiceRegistry sr = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry(); SessionFactory sessionFactory = config.buildSessionFactory(sr); Session session = sessionFactory.openSession(); Transaction tx = session.beginTransaction(); Person p = new Person(); p.setName("mm"); p.setId(2); System.out.println("--修改前--"+p); session.update(p); tx.commit();//提交的时候才执行SQL session.close(); System.out.println("---------end--------"); }
megra()方法的使用1:当通过get()方法得到数据的时候,在修改跟update()方法差不多,但是如果用创建对象的方法修改对象,那么数据库不会修改成创建的这个对象,因为new出来的对象就是临时状态,跟数据库还没有关系,只用session关联的时候才会进行修改。
/** * 更新操作 */ private static void merge2() { Configuration config = new Configuration().configure(); ServiceRegistry sr = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry(); SessionFactory sessionFactory = config.buildSessionFactory(sr); Session session = sessionFactory.openSession(); Transaction tx = session.beginTransaction(); Person p1 = new Person(); p1.setId(1); p1.setName("ooo"); System.out.println("merge2--修改前--"+p1); //传递给merge方法的p1是一个临时对象,没有跟session进行关联 //merge方法返回的p2是一个由session持久化管理的持久化对象,所以p2的改变会在session关闭的时候同步到数据库表中 Person p2 = (Person)session.merge(p1); System.out.println("p1---"+p1); System.out.println("p2---"+p2); p2.setName("p22"); p1.setName("p11"); System.out.println("-1-p1---"+p1); System.out.println("-2-p2---"+p2); tx.commit();//提交的时候才执行SQL session.close(); System.out.println("---------end--------"); } /** * 更新操作 */ private static void merge() { Configuration config = new Configuration().configure(); ServiceRegistry sr = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry(); SessionFactory sessionFactory = config.buildSessionFactory(sr); Session session = sessionFactory.openSession(); Transaction tx = session.beginTransaction(); Person p1 = (Person)session.get(Person.class, 1); System.out.println("--修改前--"+p1); p1.setName("kk2"); Person p2 = (Person)session.merge(p1); System.out.println("p1---"+p1); System.out.println("p2---"+p2); p2.setName("p2"); p1.setName("p1"); System.out.println("-1-p1---"+p1); System.out.println("-2-p2---"+p2); tx.commit();//提交的时候才执行SQL session.close(); System.out.println("---------end--------"); }
saveorupdate方法的使用
/** * 更新操作 * saveOrUpdate 方法会根据传递的对象有没有ID来进行新增或者修改操作 * 有id就是修改 * 没有id就是新增 * 如果给定的id没有对应的记录将报错 */ private static void saveOrUpdate2() { Configuration config = new Configuration().configure(); ServiceRegistry sr = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry(); SessionFactory sessionFactory = config.buildSessionFactory(sr); Session session = sessionFactory.openSession(); Transaction tx = session.beginTransaction(); Person p1 = new Person(); p1.setId(9); p1.setName("YYY"); p1.setPassword(00000); p1.setBirthday(new java.util.Date()); session.saveOrUpdate(p1); tx.commit();//提交的时候才执行SQL session.close(); System.out.println("---------end--------"); } /** * 更新操作 */ private static void saveOrUpdate() { Configuration config = new Configuration().configure(); ServiceRegistry sr = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry(); SessionFactory sessionFactory = config.buildSessionFactory(sr); Session session = sessionFactory.openSession(); Transaction tx = session.beginTransaction(); Person p1 = (Person)session.get(Person.class, 1); p1.setName("III"); session.saveOrUpdate(p1); tx.commit();//提交的时候才执行SQL session.close(); System.out.println("---------end--------"); }
delete方法的使用:
/** * 对象删除 */ private static void delete2() { Configuration config = new Configuration().configure(); ServiceRegistry sr = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry(); SessionFactory sessionFactory = config.buildSessionFactory(sr); Session session = sessionFactory.openSession(); Transaction tx = session.beginTransaction(); Person p = new Person(); p.setId(2); session.delete(p); tx.commit();//提交的时候才执行SQL session.close(); System.out.println("---------end--------"); } /** * 对象删除 */ private static void delete() { Configuration config = new Configuration().configure(); ServiceRegistry sr = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry(); SessionFactory sessionFactory = config.buildSessionFactory(sr); Session session = sessionFactory.openSession(); Transaction tx = session.beginTransaction(); Person p = (Person)session.get(Person.class, 1); session.delete(p); tx.commit();//提交的时候才执行SQL session.close(); System.out.println("---------end--------"); }
Hibernate查询uodate-megre-saveorupdate-delete方法使用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。