Spring整合Mybatis思路梳理总结
spring整合myabtis思路的分析
引入相关依赖
spring
myabtis
mysql
mybatsi-spring
…
如何整合?
spring:
项目管理框架,主要是用来负责项目中组件对象的创建,使用,销毁。
mybatis:
持久层框架,主要是用来简化原始jdbc技术对数据库访问操作。
== >整合思路:通过spring框架接管mybatis框架中核心对象的创建。
mybatis框架中核心对象是谁?
- sqlsession?
- sqlsessionfactory?
- sqlsessionfactorybuilder?
- dao?
最核心的对象必然是:sqlsessionfactory。
sqlsessionfactorybuilder的作用就是读取解析配置文件==【数据源配置,mapper文件配置】==,来创建sqlsessionfactory。
sqlsession的创建又依靠于sqlsessionfactory。
== > sqlsessionfactory是最核心的对象。
sm整合
整合思路:通过spring框架接管mybatis中核心的sqlsessionfactory对象的创建。
sqlsessionfactory是简单对象还是复杂对象呢?
如果是简单对象
<bean id="" class=""/>
如果是复杂对象
通过查看源码得知,sqlsessionfactory是一个接口类型的复杂对象。
如何创建?
is = resources.getresourceasstream("mybatis-config.xml"); sqlsessionfactory = new sqlsessionfactorybuilder(),build(is);
1).sqlsessionfactory(factory)bean implements factorybean<sqlsessionfactory> { sqlsessionfactory getobject() { is = resources.getresourceasstream("mybatis-config.xml"); sqlsessionfactory = new sqlsessionfactorybuilder(),build(is); } class getclass() { return sqlsessionfactory.class; } boolean issingleton() { return true; } } 2).工厂管理sqlsessionfactory <bean id="sqlsessionfactory" class="xxx.sqlsessionfactorybean"> 3).工厂获取 sqlsessionfactory sf = context.getbean("sqlsessionfactory");
写完之后,我们可以发现,这段代码是固定不变的,这个项目要写,别的项目也要写。
于是mybatis官方替我们写好了,对这段代码进行了封装:mybatis-spring.jar。
jar包里提供了一个类:sqlsessionfactorybean。
我们以后只要引mybatsi-spring依赖就可以了,不用在自己去写了。
值得注意的是:mybatis官方提供sqlsessionfactorybean,不在使用mybaits主配置文件。
主配置文件的核心就是【数据源】【mapper文件的注册】
所以我们要注入数据源对象,引入druid依赖,注入mapper文件的位置。【di思想,依赖注入】
<!-- 配置spring.xml文件 --> <!-- 创建数据源对象 --> <bean id="datasource" class="com.alibaba.druid.pool.druiddatasource" > <property name="drivername" value="com.mysql.cj.jdbc.driver"/> <property name="url" value="jdbc:mysql://localhost:3306/xxx"/> <property name="username" value="root"/> <property name="password" value="root"/> <bean/> <!-- 创建sqlsessionfactory对象 --> <bean id="sqlsessionfactory" class="org.mybatis.spring.sqlsessionfactorybean"> <!-- 注入数据源对象 --> <property name="datasource" ref="datasource" /> <!-- 注入mapper文件的位置 --> <property name="mapperlocations"> <array> <value>.....</value> </array> </property> <bean/>
到此这篇关于spring整合mybatis思路梳理总结的文章就介绍到这了,更多相关spring整合mybatis内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
推荐阅读
-
Mybatis整合spring(适合小白)
-
SSM(Spring+SpringMVC+Mybatis)框架整合
-
Spring和Mybatis整合全过程实现(idea实现)适合初学spring和mybatis
-
Spring和Mybatis整合需要导入的依赖
-
spring整合mybatis
-
Spring boot Mybatis整合构建Rest服务(超细版)
-
Mybatis整合spring详细教程(适合小白童鞋)
-
荐 BAT高频面试系列:设计模式+Spring源码+MyBatis+SpringMVC多线程+MySQL+Redis+框架使用+数据结构算法答案和总结
-
荐 使用IDEA实现SSM整合(Maven+Spring+Mybatis+SpringMvc)
-
spring整合mybatis接口无法注入问题