【有书共读】《Spring源码深度解读》第八章myBatis

整合myBatis

myBatis是支持普通sql查询、存储过程和高级映射的优秀持久层框架。myBatis消除了几乎所有的jdbc代码和参数的手工设置以及结果集的检索。myBatis使用简单的xml或注解用于配置和原始映射,将接口和javapojos映射成数据库中的记录。

一:myBatis独立使用

(1)建立PO

        用于对数据库中数据的映射,事程序员更关注与对java类的使用而不是数据库的操作。重点:必须要有无参构造方法,不然根据Mapper.xml中的配置,在查询数据库时,将不能反射构造出实例。

(2)建立mapper

数据库操作的映射文件,也就是常说的Dao,用于映射数据库的操作,可以通过配置文件指定方法对应的sql语句或者直接使用java提供的注解方式进行sql指定。

(3)建立配置文件

配置文件主要用于配置程序中可变性高的设置,一个偏大的程序一定会存在经常变化的变量,如果每次变化都要改变源码,那是非常糟糕的设计,所以避免不了使用配置文件,mybatis中的配置文件主要封装在configuration中。

(4)建立映射文件

对应于mybatis全局配置中的mappers配置属性,主要用于建立对应数据库操作接口的sql映射。Mybatis会将这里设定的SQL与对应的java接口相关联,以保证在mybatis中调用接口的时候会到数据库中执行相应的sql来简化开发。

(5)建立测试类

二:spring整合myBatis

(1)spring配置文件

配置文件是spring的核心,spring的所有操作也都是由配置文件开始。

(2)myBatis配置文件

可以将myBatis中的配置内容移到spring的配置文件中

(3)映射文件(保持不变)

(4)测试

三:源码分析

(一)SQLSessionFactory

SQLSessionFactory这个类中,实现了两个重要的结口

(1)InitializingBean:实现此接口的bean会在初始化时调用afterPropertiesSet方法进行bean的初始化。

(2)FactoryBean:一旦某个bean实现此接口,那么通过getBean方法获取bean时其实就是获取getObject()返回的实例。

SqlSesseionFactoryBean的初始化:afterPropertiesSet()->buildSqlSessionFactory.

获取SqlSessionFactoryBean实例:getObject()方法。

(二)MapperFactoryBean的创建

MapperFactoryBean中两个重要的接口InitializingBeanFactoryBean()

(1)   MapperFactoryBean的初始化

InitializingBean接口中:afterPropertiesSet()->checkDaoConfig()

接口是映射器的基础

(2)   获取MapperFactoryBean的实例

直接调用getObject()方法。

 

 

全部评论

相关推荐

点赞 评论 收藏
分享
程序员卤馆:加v细说
点赞 评论 收藏
分享
评论
点赞
11
分享

创作者周榜

更多
牛客网
牛客企业服务