实现将一个用户的数据保存到数据库:
步骤:
1.解析主配置文件
2.根据配置文件创建sessionFactory
3.根据sessionFactory创建session
4.开启事务
5.执行操作
6.提交事务
7.释放资源
@Test
public void save_u(){
/*
* 1.加载主配置文件
* */
//获取一个configuration对象
Configuration configuration=new Configuration();
//加载主配置文件,无参默认到根路径下寻找
configuration.configure();
/*
* 2.根据配置文件创建SessionFactory对象
* */
SessionFactory sf=configuration.buildSessionFactory();
/*
* 3.根据sessionfactory对象创建session对象
* */
Session session=sf.openSession();
/*
* 4.根据session创建事务,也即是开启事务
* */
Transaction tr=session.beginTransaction();
/*
* 5.执行操作
* */
Users user_li=new Users();
user_li.setU_name("李测试");
user_li.setU_passwd("123456");
session.save(user_li);
/*
* 6.提交事务
* */
tr.commit();
/*
* 7.释放资源
* */
session.close();
sf.close();
}
关于事务:
acid特性
事务隔离性
不考虑隔离性的三种情况
四种隔离级别
常用对象:
configuration (还有两个方法:addresource(),addclass();都作为加载实体类映射文件用)
sessionFactory (维护数据库配置信息,映射文件信息,管理二级缓存)它是线程安全的。
一个应用只要一个sessionFactory对象,应用加载时创建,应用结束时销毁
session(负责操作数据库)一个线程只有一个session,多个将无法控制事务
transaction 负责提交和回滚事务