1.详细原理
mybatis配置文件 -------------> 加载 扫描.xml映射文件 (存入映射文件信息)--------------> mybatis底层 提供 Resource 类 使用 其中的getResouceAsStream方法 将 文件信息转化为流-------------> 使用SqlSessionFactoryBuilder(用于创建会话工厂) ,并传入流 (文件的信息) , 调用 其中的build 方法 , 生成SqlSessionFactory(会话工厂),build方法中存在Configuration(用于装载文件信息) -------------> 在Configuration中存在 连接、映射文件信息 (连接 相当于mybatis配置文件) , 使用方法将 映射文件信息 装入Map 集合 (Map<映射文件的全限定名+ id , 映射文件的返回值类型(resultType/resultMap)+sql语句>)------------->SqlSessionFactory(会话工厂) 调用openSession 方法 获取SqlSession(会话 ,存入 连接、Map集合中的信息) --------------->SqlSession将集合传入代理类工厂 ,代理类工厂使用getMapper方法生成代理类------------------>t同时代理类工厂使用方法获取到 集合的key值,从而获取value值 并使用 Execute 方法执行 key值中的 sql语句。
2.原理:
mybatis配置文件 -------------> 加载 扫描.xml映射文件 -------------> Resource解析为流IntputStream------ (InputStream ) ------->SqlSessionFactoryBuilder------ (Configuration(conn,Map<全限定名+id,MappedStatement> ) -------->SqlSessiongFactory ------- (Configuration ) ---------> SqlSession ---- ( Map<全限定名+id,MappedStatement> ,conn) --------> Proxy ----- (MappedStatement)----> Execute