05.MyBatis的基本原理介绍
1.MyBatis执行步骤:
// 1.加载核心配置文件
InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
// 2.创建SqlSessionFactory工厂
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
// 3.通过SqlSessionFactory工厂创建SqlSeeSion对象
SqlSession sqlSession = sqlSessionFactory.openSession();
// 4.执行sql
User user = new User();
user.setAddress("jinan");
user.setBirthday(new Date());
user.setSex("1");
user.setUsername("leelon");
int insert = sqlSession.insert("userMapper.saveUser",user);
if (insert > 0){
System.out.println("注册成功");
}else{
System.out.println("注册失败");
}
//5.提交事务
sqlSession.commit();
// 6.释放连接
sqlSession.close();
2.MyBatis执行原理
-
利用Resources类读取配置文件,(配置文件包括:核心配置文件,映射配置文件)
-
创建SqlSqlSessionFacotryBuild对象调用build方法( new SqlSqlSessionFacotryBuild().build(in) )。
- 进行初始化配置:使用了dom4j解析了配置文件,将配置文件中的配置(就是自己写的sql)封装了一个一个的MappedStatement对象,将这些MappedStatement对象封装成Map对象。
-
创建了sqlSessionFactory工厂对象。
-
sqlSessionFactory工厂创建sqlSession对象。
- 本身不会直接操作数据库,sqlSession对象会委派给执行器来执行sql。
-
执行器通过传过来的方法sqlSession.selectList(userMapper.findAll)找到之前封装的Map集合来执行底层JDBC的sql。
\