07.session的delete和update方法讲解

 

package com.gyf.hibernate.test;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test;

import com.gyf.hibernate.domain.User;

public class Lesson07 {

    @Test
    public void test1(){
        //用户数据
        //1.获取核心 配置文件对象
        Configuration cfg = new Configuration().configure();
        
        //2.创建会话工厂
        SessionFactory factory = cfg.buildSessionFactory();
        
        //3.通过会话工厂获取session对象
        Session session =  factory.openSession();
    
        /**
         * 讲解session的delete 删除数据两种方式
         * 第一方式:先获取要删除对象,然后再调用delete方法
         *     User user = (User) session.get(User.class, 7);
         *     session.delete(user);
         *    第二方式:创建一个User,设置id,然后再调用delete方法
         */
        session.getTransaction().begin();
        
        User user = new User();
        user.setUid(8);
        session.delete(user);
        
        session.getTransaction().commit();
        
        //4.关闭会话
        session.close();
        
        //5.关闭工厂,释放资源
        factory.close();
    }
    
    @Test
    public void test2(){
        //用户数据
        //1.获取核心 配置文件对象
        Configuration cfg = new Configuration().configure();
        
        //2.创建会话工厂
        SessionFactory factory = cfg.buildSessionFactory();
        
        //3.通过会话工厂获取session对象
        Session session =  factory.openSession();
    
        
        User user = new User();
        user.setPassword("123");
        user.setUsername("gyf03");
        session.save(user);
        
        //4.关闭会话
        session.close();
        
        //5.关闭工厂,释放资源
        factory.close();
    }
    
    
    @Test
    public void test3(){
        //用户数据
        //1.获取核心 配置文件对象
        Configuration cfg = new Configuration().configure();
        
        //2.创建会话工厂
        SessionFactory factory = cfg.buildSessionFactory();
        
        //3.通过会话工厂获取session对象
        Session session =  factory.openSession();
    
        /**
         * 讲解session的update 更新数据
         * 方式一.通过get获取数据,调用set方法,事务提交,自动执行update语句
         * 方式二.自己封装User对象,设置id,这个时候,需要调用update方法
         */
        session.getTransaction().begin();
        
        //1.获取数据,调用set方法,事务提交
        User user = (User) session.get(User.class, 5);
        user.setPassword("123234");
        
    /*    User user = new User();
        user.setUid(5);
        user.setUsername("gyf");
        user.setPassword("123345");*/
        
        //更新
        //session.update(user);//有id会更新,update时,一定要有id
        //session.save(user);//有id会更新
        //session.saveOrUpdate(user);//判断user有没有id,有id,更新数据,没有id的插入数据

        session.getTransaction().commit();
        
        //4.关闭会话
        session.close();
        
        //5.关闭工厂,释放资源
        factory.close();
    }
}

 

posted @ 2019-04-13 14:36  expworld  阅读(578)  评论(0)    收藏  举报