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();
}
}