Spring整合Mybatis思路分析(SM整合)
引入相关依赖
spring mybatis mysql mybatis-spring druid……
如何整合?
Spring
是项目管理框架 主要是用来负责项目中组件对象的创建、使用、销毁
--对象创建
Mybatis
是持久层框架 主要是用来简化原始jdbc技术对数据库访问操作
--操作数据库
整合思路:通过Spring框架接管Mybatis框架中核心对象的创建
Mybatis框架中核心对象是谁?
SqlSessionFactory
Mybatis中核心对象,读取
Mybatis-Config.xml
[数据源配置和mapper文件配置]
SM整合(Spring整合mybatis框架)
整合思路:通过Spring框架接管Mybatis中核心的SqlSessionFactory
对象的创建
- Spring如何管理 SqlSessionFactory 对象的创建
简单对象:
<bean id="" class=""/>
复杂对象(接口和抽象类等):
类 implement FactoryBean<创建的对象>{}
SqlSessionFactory:通过查看源码得知它是一个接口类型的复杂对象。
普通如何创建:
1 | InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml"); |
复杂对象如何创建:
1 | package factorybean; |
- 工厂管理 SqlSessionFactory
1 | <bean class="buubiu.sqlSessionFactoryBean" id="sqlSessionFactory" /> |
- 工厂获取
1 | SqlSessionFactory sqlSessionFactory = (SqlSessionFactory) context |
Mybatis官方提供jar包
mybatis-spring.jar
封装了 SqlSessionFactory 对象的创建,即我们刚刚创建的 SqlSessionFactoryBean
所以,在工厂管理时,直接引用jar包里面的SqlSessionFactoryBean
1 | <bean class="org.mybatis.spring.SqlSessionFactoryBean" id="sqlSessionFactory"/> |
注意:官方提供的 SqlSessionFactoryBean 不能再使用mybatis-config.xml
创建数据源对象(driud c3p0 dbcp)
- 引入依赖
1 | <!--druid--> |
- 创建数据源对象
1 | <!--创建数据源对象 druid c3p0 dbcp--> |
- 工厂获取
1 | SqlSessionFactory sqlSessionFactory = (SqlSessionFactory) context |
Spring整合Mybatis思路分析(SM整合)