1 前言
spring是一个轻量级的控制反转和面向切面的容器框架。
控制反转,也被成为依赖注入。不去创建对象,但是描述创建它们的方式,在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。容器(IOC)将这些联系到一起。
Mybatis 是支持普通sql查询,存储过程和高级映射的优秀持久层框架,它消除了几乎所有jdbc代码和参数的手工设置以及结果集的检索。
2 整合思路
需要spring通过单例方式管理sqlsessionfactory
spring和mybatis整合生成代理对象,使用sqlsessionfactory创建sqlsession(spring和mybatis整合自动完成)
持久层的mapper都需要由spring进行管理。
3 嘎试(开整)
1 导jar包
需要导spring包 mybatis包 之外,不要忘了导两者的整合包(包括spring-mvc,早期ibatis和spring整合是由spring官方提供,mybatis和spring整合由mybatis提供)
2 配置资源文件(主要是数据源 会话工厂)
<!-- 加载配置文件 -->
<context:property-placeholder location="classpath:db.properties" />
<!-- 数据源,使用dbcp -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="maxActive" value="10" />
<property name="maxIdle" value="5" />
</bean>
<!-- sqlSessinFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 加载mybatis的配置文件 -->
<property name="configLocation" value="mybatis/SqlMapConfig.xml" />
<!-- 数据源 -->
<property name="dataSource" ref="dataSource" />
</bean>
3 接下来以原始dao开发方式介绍作为例子:
原始的(有DaoImpl)
依然写好User.xml
在SqlMapconfig.xml 中加载User.xml
<mappers>
<mapper resource = "sqlmap/User.xml" />
...
配置别名的 可以继续加上
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 别名定义 -->
<typeAliases>
<!-- 批量别名定义
指定包名,mybatis自动扫描包中的po类,自动定义别名,别名就是类名(首字母大写或小写都可以)
-->
<package name="cn.itcast.ssm.po"/>
</typeAliases>
<!-- 加载 映射文件 -->
<mappers>
<mapper resource="sqlmap/User.xml"/>
<!-- <package name="cn.itcat.ssm.mapper"/> -->
</mappers>
</configuration>
然后写dao接口,dao接口实现类,dao接口实现类需要注入sqlsessionfactory
接下来在applicationcontext.xml中声明配置。在beans中添如下
<!-- 原始dao接口 -->
<bean id="userDao" class="cn.itcat.ssm.dao.UserDaoImpl">
<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean>
注意,我们已经让daoImpl 继承了sqlsessionDaoSupport.方便利用this.getSqlSession.之后你就能对之测试了;
测试代码贴上
想了解更详细点 欢迎到我的github进行下载