搬运mybatis源码解析
单纯搬运记录,学习请移步;
怎么获取SqlSessionFactory
- 首先,SqlSessionFactoryBuilder去读取mybatis中的配置文件,然后build一个DefaultSqlSessionFactory;
- 通过SqlSessionFactory去获取SqlSession对象;
通过MapperProxy代理我们的Dao方法
3. 通过SqlSession从configuration中获取数据访问对象DAO
4. Cofiguration转手将这个任务扔给了MapperResgistry
5. MapperRegistry又转手给MapperProxyFactory(Mapper代理工厂)
Sql语句如何执行
- MapperProxy在执行会让MapperMethod进行处理
- MapperMethod首先判断sql的类型,然后根据类型判断到底执行了哪个方法,
- 然后就执行
- 规定语句查询的方式:默认为预编译PreparedStatement
MyBatis的优势
MyBatis能够设置pojo的别名、设置插件,对从数据库中返回的数据进行处理(TypeHandler)、能够自定义resultMap、插入时为插入对象返回主键id、设置动态sql等诸多优点
SqlSessionFactory