05.MyBatis的基本原理介绍
1.MyBatis执行步骤:
InputStream inputStream = Resources . getResourceAsStream ( "SqlMapConfig.xml" ) ;
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder ( ) . build ( inputStream) ;
SqlSession sqlSession = sqlSessionFactory. openSession ( ) ;
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 ( "注册失败" ) ;
}
sqlSession. commit ( ) ;
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。