第10章 Mybatis与Spring的整合
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
配置数据源
<property name="password" value="${jdbc.password}" />
<property name="maxTotal" value="${jdbc.maxTotal}" />
<property name="maxIdle" value="${jdbc.maxIdle}" />
SqlSessionDaoSupport:是一个抽象支持类,它继承了DaoSupport类,主要是 作为DAO的基类来使用。可以通过SqlSessionDaoSupport类的getSqlSession()方 法来获取所需的SqlSession。
✎ 10.2 传统DAO方式的开发整合
Hibernate
mapperInterface:用于指定接口; SqlSessionFactory:用于指定SqlSessionFactory; SqlSessionTemplate:用于指定SqlSessionTemplate。如果与SqlSessionFactory同
时设定,则只会启用SqlSessionTemplate。
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
<property name="driverClassName" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" />
<property name="dataSource" ref="dataSource" /> </bean>
开启事务注解
<tx:annotation-driven transaction-manager="transactionManager"/>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
配置MyBatis
<property name="configLocation" value="classpath:mybatis-config.xml"/>
工厂
</bean>
</beans>
✎ 10.1.2 编写配置文件
✎ 10.1.2 编写配置文件
1.创建项目,引入JAR包
在Eclipse中,创建一个名称为chapter10的Web项目,将上一小节中所准备的 全部JAR包添加到项目的lib目录中,并发布到类路径下。
2.编写db.properties
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/mybatis jdbc.username=root jdbc.password=root jdbc.maxTotal=30 jdbc.maxIdle=10 jdbc.initialSize=5
10.4 测试事务
✎ 10.3 Mapper接口方式的开发整合
概述
在MyBatis+Spring的项目中,虽然使用 传统的DAO开发方式可以实现所需功能,但 是采用这种方式在实现类中会出现大量的重 复代码,在方法中也需要指定映射文件中执 行语句的id,并且不能保证编写时id的正确 性(运行时才能知道)。
✎
Java EE企业级应用开发教程
(Spring+Spring MVC+MyBatis)
第10章 MyBatis与Spring的整合
· 整合环境搭建
· 传统DAO方式的开发整合
· Mapper接口方式的开发整合 · 测试事务
✎ 作业点评
– 请简述不同对象之间的三种关联关系。 – 请简述MyBatis关联查询映射的两种处理方式。
脚下留心 虽然ቤተ መጻሕፍቲ ባይዱ用Mapper接口编程的方式很简单,但是在具体使用时还是需要遵 循一些规范。 1 Mapper接口的名称和对应的Mapper.xml映射文件的名称必须一致。
2 Mapper.xml文件中的namespace与Mapper接口的类路径相同。 3 Mapper接口中的方法名和Mapper.xml中定义的每个执行语句的id相同。
的学习案例
二级缓存
案例代码
接下来,以SqlSessionDaoSupport类 的使用为例,来讲解下传统的DAO 开发方式整合的实现,具体内容请 参见教材10.2节案例代码。
✎ 主讲内容
10.1 整合环境搭建
主讲内容 10.2 传统DAO方式的开发整合
10.3 Mapper接口方式的开发整合
Speech content
AOP开发使用的JAR 4个核心模块JAR JDBC和事务的JAR
注意:核心容器依赖的commons-logging的JAR在MyBatis框架的lib包中已经包含!
✎ 10.1.1 准备所需JAR包
2.MyBatis框架所需的JAR包
• ant-1.9.6.jar • ant-launcher-1.9.6.jar • asm-5.1.jar • cglib-3.2.4.jar • commons-logging-1.2.jar • javassist-3.21.0-GA.jar • log4j-1.2.17.jar • log4j-api-2.3.jar • log4j-core-2.3.jar • mybatis-3.4.2.jar • ognl-3.1.12.jar • slf4j-api-1.7.22.jar • slf4j-log4j12-1.7.22.jar
✎ 10.1.2 编写配置文件
操作步骤
1 创建项目(chapter10),引入JAR包 2 编写db.properties 3 编写Spring配置文件applicationContext.xml 4 编写MyBatis配置文件mybatis-config.xml 5 引入log4j.properties
<property name="initialSize" value="${jdbc.initialSize}" />
</bean> <bean id="transactionManager"
配置事务管理器
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
✎ 主讲内容
10.1 整合环境搭建
主讲内容 10.2 传统DAO方式的开发整合
10.3 Mapper接口方式的开发整合
Speech content
10.4 测试事务
✎ 10.2 传统DAO方式的开发整合
采用传统DAO开发方式进行MyBatis与Spring框架的整合时,可 以使用mybatis-spring包中所提供的SqlSessionTemplate类或 SqlSessionDaoSupport类来实现。
4.编写MyBatis配置文件mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?> … <configuration>
<typeAliases> <package name="com.itheima.po" />
</typeAliases> <mappers> ... </mappers>
✎ 10.3.1 基于MapperFactoryBean的整合
Hibernate
的学习案例
二级缓存
案例代码
接下来,通过一个具体的案例来演 示如何通过MapperFactoryBean来实 现MyBatis与Spring的整合,具体内 容请参见教材10.3.1小节案例代码。
✎ 10.3.1 基于MapperFactoryBean的整合
SqlSessionTemplate:是mybatis-spring的核心类,它负责管理MyBatis的 SqlSession,调用MyBatis的SQL方法。当调用SQL方法时,SqlSessionTemplate 将会保证使用的SqlSession和当前Spring的事务是相关的。它还管理SqlSession 的生命周期,包含必要的关闭、提交和回滚操作。
</configuration>
5.引入log4j.properties
# Global logging configuration log4j.rootLogger=ERROR, stdout # MyBatis logging configuration... log4j.logger.com.itheima=DEBUG # Console output... log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
为此,我们可以使用MyBatis提供的另 外一种编程方式,即使用Mapper接口编程。
✎ 10.3.1 基于MapperFactoryBean的整合
MapperFactoryBean是MyBatis-Spring团队提供的一个用于根据 Mapper接口生成Mapper对象的类,该类在Spring配置文件中使用时 可以配置以下参数:
解压文件夹中lib目 录中的所有JAR
核心JAR
✎ 10.1.1 准备所需JAR包
3.MyBatis与Spring整合的中间JAR • mybatis-spring-1.3.1.jar
4.数据库驱动JAR(MySQL) • mysql-connector-java-5.1.40-bin.jar
5.数据源所需JAR(DBCP) • commons-dbcp2-2.1.1.jar • commons-pool2-2.4.2.jar
10.4 测试事务
✎ 10.1.1 准备所需JAR包
要实现MyBatis与Spring的整合,很明显需要这两个框架的 JAR包,但是只使用这两个框架中所提供的JAR包是不够的,还需 要其他的JAR包来配合使用,整合时所需准备的JAR包具体如下。
1.Spring框架所需的JAR包
• aopalliance-1.0.jar • aspectjweaver-1.8.10.jar • spring-aop-4.3.6.RELEASE.jar • spring-aspects-4.3.6.RELEASE.jar • spring-beans-4.3.6.RELEASE.jar • spring-context-4.3.6.RELEASE.jar • spring-core-4.3.6.RELEASE.jar • spring-expression-4.3.6.RELEASE.jar • spring-jdbc-4.3.6.RELEASE.jar • spring-tx-4.3.6.RELEASE.jar
✎ 预习检查
– 如何搭建整合环境? – MyBatis与Spring整合有几种方式?
✎ 学习目标
2 传统DAO方式的开发
整合
掌握
掌握
Mapper接口方式
的开发整合
1
✎ 主讲内容
10.1 整合环境搭建
主讲内容 10.2 传统DAO方式的开发整合
10.3 Mapper接口方式的开发整合
Speech content
✎ 10.1.2 编写配置文件
3.编写Spring配置文件applicationContext.xml
<beans xmlns="http://www.springframework.org/schema/beans"
读取db.properties
...
<context:property-placeholder location="classpath:db.properties"/>