思路分析(适用于整合所有框架)
- 引入相关依赖
spring mybatis mysql mybatis-spring。。。 - 如何整合
Spring 主要是用来负责项目中组件对象的创建,使用,销毁,是一个项目管理框架;
mybatis 主要是用来简化原有的jdbc技术,进行数据库访问操作,是一个持久层的框架;
整合思路:通过spring去接管mybatis中核心对象的创建。 - mybatis中的核心对象是什么
sqlSessionFactoryBuilder
sqlSessionFactory mybatis中的核心对象 读取Mybatis-Config.xml[数据源的配置,mapper的配置]
sqlSession
dao - SM整合
通过spring框架接管sqlSessionFactory对象的创建;
a).简单对象?还是复杂对象
接口类型的复杂对象
b).如何创建 public class SqlSessionFactoryBean implements FactoryBean<SqlSessionFactory> {
private String configLocation;
public void setConfigLocation(String configLocation) {
this.configLocation = configLocation;
}
public SqlSessionFactory getObject() throws Exception {
InputStream is = Resources.getResourceAsStream(configLocation);
SqlSessionFactory build = new SqlSessionFactoryBuilder().build(is);
return build;
}
public Class<?> getObjectType() {
return SqlSessionFactory.class;
}
public boolean isSingleton() {
return true;
}
```
- mybatis官方提供了mybatis-spring的jar包,可以封装上述代码
注;使用官方jar包就不再支持config.xml配置文件,需要在bean中配置
需要引入druid依赖
<bean class="com.alibaba.druid.pool.DruidDataSource" id="dataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/mysql"/>
<property name="username" value="root"/>
<property name="password" value="wuhaotian"/>
</bean>
<bean class="org.mybatis.spring.SqlSessionFactoryBean" id="sqlSessionFactory">
<property name="dataSource" ref="dataSource">
</property>
</bean>