Hibernate一级缓存特性
1 持久态自动更新数据库
1 持久态自动更新数据库
package com.hlg.hibernatetest;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.junit.Test;
import com.hlg.entity.User;
import com.hlg.utils.HibernateUtils;
public class HibernateSelect {
@Test
public void testSaveOrUpdate(){
//1 调用工具类得到sessionFactory
SessionFactory sessionFactory = HibernateUtils.getSessionFactory();
//2 获取session
Session session = sessionFactory.openSession();
//3 开启事务
Transaction tx = session.beginTransaction();
// 根据uid = 1 查询
//执行第一个get方法是否查询数据库,是否发送sql语句
User user1 = session.get(User.class, 1);
System.out.println(user1);
// 再 根据uid = 1 查询
//执行第一个get方法是否查询数据库,是否发送sql语句
User user2 = session.get(User.class, 1);
System.out.println(user2);
//5 提交事务
tx.commit();
//6 关闭资源
session.close();
sessionFactory.close();
}
@Test
public void testCache(){
//1 调用工具类得到sessionFactory
SessionFactory sessionFactory = HibernateUtils.getSessionFactory();
//2 获取session
Session session = sessionFactory.openSession();
//3 开启事务
Transaction tx = session.beginTransaction();
// 根据uid = 1 查询
User user1 = session.get(User.class, 1);
user1.setUsername("黄山");
//持久态自动更新数据库
//session.update(user1);
//5 提交事务
tx.commit();
//6 关闭资源
session.close();
sessionFactory.close();
}
}
Hibernate:
select
user0_.uid as uid1_0_0_,
user0_.username as username2_0_0_,
user0_.password as password3_0_0_,
user0_.address as address4_0_0_
from
t_user user0_
where
user0_.uid=?
Hibernate:
update
t_user
set
username=?,
password=?,
address=?
where
uid=?
=======================(11_hibernate一级缓存特性执行过程)==================
2 执行过程(了解)