mybatis是对jdbc的一种底层封装。
原理流程:
1.SqlSessionFactoryBuilder
每一个MyBatis的应用程序的入口是SqlSessionFactoryBuilder。
它的作用是通过XML配置文件创建Configuration对象,然后通过build方法创建
SqlSessionFactory对象。
2.SqlSessionFactory
主要功能是创建SqlSession对象
3.SqlSession
对象的主要功能是完成一次数据库的访问和结果的映射,默认创建DefaultSqlSession 并且开启一级缓存,创建执行器 、赋值。 SqlSession有一个重要的方法getMapper,应用程序获得Mapper对象后,就应该通过这个Mapper对象来访问数据库的增删改查操作
Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
sqlSessionFactory = sqlSessionFactoryBuilder.build(reader);
SqlSession session= sqlSessionFactory.openSession();
UserDao userDao = session.getMapper(UserDao.class);
List<UserDto> users = userDao.queryUsers(user);//增删改查等操作
4.Executor
主要功能是调用StatementHandler访问数据库,并将查询结果存入缓存中(如果配置了缓存的话)。
5、StatementHandler
StatementHandler是真正访问数据库的地方,负责对JDBC statement的操作
- ParameterHandler 负责对用户传递的参数转换成JDBC Statement 所需要的参数
- ResultSetHandler *负责将JDBC返回的ResultSet结果集对象转换成List类型的集合;
- TypeHandler 负责java数据类型和jdbc数据类型之间的映射和转换