MyBatis的工作原理
(1)MyBatis根据配置文件中的数据库连接,数据源,事务管理等环境信息创建SQLSessionFactory对象
(2)通过SQLSessionFactory对象打开SQLSession对象,SQLSession对象内部封装了JDBC的Connection,并提供了CRUD的操作方法 【相当于JDBC的获取连接】
(3)Executor对象负责执行CRUD的操作方法,根据SQL语句的id查找映射文件中的SQL语句,并委托StatementHandler对象对SQL语句进行预编译 【相当于JDBC的创建PreparedStatement】
(4)StatmentHandler对象根据映射文件中SQL语句的输入映射定义,将需要的参数传入到SQL语句中(参数赋值),并执行最终的SQL语句 【相当于JDBC的executeUpdate()和executeQuery()】
(5)查询结果返回时,根据映射文件中SQL语句的输出映射定义,委托ResultSetHandler对象将查询结果封装成Java对象 【JDBC中此步骤需要程序员手工编码完成】