首页 > 代码库 > 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方法使用