mybatis与spring整合

1.记一个坑:mybatis的xml mapper文件放在源码目录时会提示无法找到,原因是使用maven构建时,会自动忽略掉其他的资源文件,不会将其打包到最终的文件中,解决办法是在pom文件中加入以下代码

src/main/java

**/*.xml

SqlSessionFactory

每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为中心的。SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先定制的 Configuration 的实例构建出 SqlSessionFactory 的实例。

mybatisSpring的封装:SqlSessionFactoryBean 默认通过读取Xml文件进行封装,并且提供了setDataSource,setTypeAlias等方法设置SqlSessionFactoryBean

SqlSessionFactoryBean读取配置流程:

1.读取类变量中的configuration 变量

2.configuration没有配置,并且配置了configLocation,则读取xml文件

3.如果 2.3都没有配置则使用默认配置

读取配置完毕后,再加载代码中设置的以下配置

1.配置ObjectFactory 对象工厂,mybatis 在创建 数据对象时调用工厂方法,默认使用DefaultObjectFactory对象,主要是通过反射新建对象,可以通过继承该对象对其进行扩展

2.配置WrapObjectFactory

3.配置vfs

4.配置TypeAliasesPackage

5.配置typeAliases:别名,方便在xml中进行配置时使用,如设置别名 com.ss.User alias=user ,在xml中无需再使用别名文件进行配置,TypeAliasesPackage,配置包名后,在该包名下的bean类,可以直接使用类名识别

6.配置插件

7.配置typeHandle,typeHandle负责mybatis在ps中设置参数,和在resultSet中取出数据时,对java对象的转换

8.配置databaseIdProvinder,负责对应不同数据库类型

配置Mapper

1.通过Spring mybatis方式,spring mybatis 提供了MapperScannerFactoryBean 能够将 mapper接口动态生成 代理并注册到spring容器中,这样的方式方便但是定制化比较差

2.手动调用的方式,调用mybatis session的方法进行调用

你可能感兴趣的:(mybatis与spring整合)