SqlSessionFactory:封装jdbc信息,所以整个项目应该只有一份对象,多分对象无意义!单例!
SqlSession:每次请求都需要开关session,并提交数据!所有:每次请求都应该是一个事务!
思考:事务:就是把多个crud封装为一个整体,改整体完成后提交,如果有异常则回滚!
事务的4个特点:
⑴ 原子性(Atomicity)
⑵ 一致性(Consistency)
⑶ 隔离性(Isolation)
⑷ 持久性(Durability)
定义事务层:serlvet->biz(事务层,业务层)->dao
============================================================================
定义事务处理接口的定义的方法
public class StuBiz {
// 业务层处理接口的定义的方法
publicvoid add(Stu stu) {
// 第一步,初始化SqlSession
SqlSession session = null;
try {
// 第二步调用单例模式和JDBC建立连接,并调用OpenSession方法
session = SqlSessionFactoryUtil.getSqlSessionFactory().openSession();
// 第三步 映射getMapper()获得接口方法(不加包名直接映射);
StuMapper tt = session.getMapper(StuMapper.class);
tt.add(stu);
// 第四步 提交
session.commit();
} catch (Exception e) {
session.rollback();
} finally {
session.close();
}
}
}