Spring 框架整合MyBatis框架
MyBatis: 用于替代JDBC,用于数据持久化
Spring: 用于整合框架,提供整合功能及其他功能[IoC,DI,AOP,事务管理等等]
SpringMVC: 用于替代JSP,用于处理请求和响应[SpringMVC属于Spring的一部分]
Spring整合MyBatis:
MyBatis功能/操作: 配置文件[实体类别名,数据源,映射文件等等],映射文件[业务标签],MyBatis代码[SqlSessionFactory,SqlSession等对象操作]
Spring功能/操作: IoC,DI,AOP,事务管理
整合目标:
1.Spring替代MyBatis中的数据源,提供SqlSessionFactory,SqlSession等对象,管理事务
2.MyBatis整合中要做的内容: 配置文件[实体类别名,映射文件等等],映射文件[业务标签],MyBatis代码[业务代码]
整合步骤:
第1步: 整合jar包
MyBatis相关jar: mybatis-3.5.1.jar,log4j-1.2.17.jar
数据库驱动器: mysql-connector-java-5.1.22-bin.jar
Spring相关jar:
commons-logging-1.2.jar
spring-aop-5.1.2.RELEASE.jar
spring-beans-5.1.2.RELEASE.jar
spring-context-5.1.2.RELEASE.jar
spring-core-5.1.2.RELEASE.jar
spring-expression-5.1.2.RELEASE.jar
spring-jdbc-5.1.2.RELEASE.jar
spring-tx-5.1.2.RELEASE.jar
aspectjrt.jar
aspectjweaver.jar
cglib-nodep-2.1_3.jar
额外jar:
连接池: commons-dbcp-1.4.jar,commons-pool-1.6.jar
MyBatis与Spring整合: mybatis-spring-2.0.3.jar
第2步: 整合配置文件
MyBatis配置文件: mybatis-conf.xml[实体类别名,环境(数据源),加载映射],log4j.xml[控制日志输出],映射文件[业务标签]
Spring配置文件: application.xml[控制反转]
整合后:
MyBatis配置文件中: 去掉环境配置(数据源),实体类别名,加载映射
log4j.xml[控制日志输出]: 无需操作
映射文件[业务标签]: 无需操作
Spring配置文件中: 添加数据源,提供SqlSessionFactory,提供事务管理
Spring配置文件:
1.开启自动扫描: 扫描service,action,mapper等等,实现控制反转[管理相关对象]---->注解方式实现控制反转
2.提供数据源
3.提供SqlSessionFactoryBean
4.提供事务管理
5.注册其他必须的对象
第3步: 整合代码
MyBatis代码正常编写即可,若需要SqlSessionFactory对象可以从Spring容器中获得.
Mapper方式实现CURD:
1.Mapper接口: 正常编写
2.业务类: 声明Mapper接口类型的属性,并由Spring注入属性值
3.注册Mapper接口:
方式1: 指定加载某个1个Mapper接口
<bean class="org.mybatis.spring.mapper.MapperFactoryBean" id="mapperFactoryBean">
<property name="sqlSessionFactory" ref="factory" />
<property name="mapperInterface" value="mapper.UserMapper" />
</bean>
方式2: 指定加载某个包中的所有Mapper接口
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer" id="mapperScannerConfigurer" >
<property name="sqlSessionFactoryBeanName" value="factory" />
<property name="basePackage" value="mapper" />
</bean>