Spring+MyBatis+JUnit整合测试的搭建过程总结
2017-08-08 15:50
549 查看
1创建项目(Maven项目支持聚合,聚合的项目模块之间具有继承的特性即子模块会继承父模块的配置)
包含父子模块的Maven项目创建方法
首先创建父项目
选中父项的pom.xml文件右键-->Maven--》new Maven module project随后和父项目差不多操作
在pom.xml可以添加许多有关开发者所在组织的信息
当需要统一版本号时,为了升级和维护,建议将版本号version定义成变量的形式
<version>${ version }</version>
<properties>
<version>0.1</version>
<spring.version>4.3.9.RELEASE</spring.version>
</properties>
将项目的配置信息写入pom.xml文件中包括
- JUnit(test)
- spring-test(test)
- 数据库驱动
- 连接池
- MyBatis
- MyBatis和Spring的整合
- Spring的事务
- Spring ORM的支持
- Spring 面向切面的支持
- Spring上下文支持
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.zhiyou100.video</groupId>
<artifactId>video-parent</artifactId>
<!-- 版本号会在多个地方使用 为了统一版本,使用变量易于修改和维护 -->
<version>${ version }</version>
<!-- 表示该父类模块包含的是所有子模块的共有配置信息-->
<packaging>pom</packaging>
<name>Video Parent</name>
<url>http://www.zhiyou100.com</url>
<description>智游在线,智游在线教育平台,提供视频课程,互动学习等服务</description>
<inceptionYear>2017</inceptionYear>
<organization>
<name>智游教育</name>
<url>http://www.zhiyou100.com</url>
</organization>
<!-- 用于配置当前xml文件中要使用的变量 -->
<properties>
<version>0.1</version>
<spring.version>4.3.9.RELEASE</spring.version>
</properties>
<!--这两个jar包所有子项目共有的因此放置于父项目中 -->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<!-- 指明这个依赖项的作用范围 -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<!-- 保证版本的统一性,使用变量,也便于修改 -->
<version>${spring.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<!-- modules用于将当前项目和另外一个或多个项目形成一个聚合项目 -->
<modules>
<module>video-service</module>
</modules>
</project>
在项目中定义数据模型(src/main/java/下)
在项目中定义数据 库访问接口xxxDao(src/main/java/下)并使用@Mapper注解标记该接口
// 在Maven项目中当dao层方法需要多个参数时使用Java容器解决这一问题
在数据 操作对象Dao定义Mapper(映射器)的配置文件(如 XXDao.xml )(该配置文件中编写相应的sql语句,建立模型和数据库之间的映射关系)
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--mapper是映射器 -->
<mapper namespace="com.zhiyou100.video.dao.UserDao">
<!-- 数据库和model的映射关系 -->
<resultMap type="User" id="userResultMap">
<id property="userId" column="user_id" />
<result property="isSystem" column="is_system" />
<result property="isAdmin" column="is_admin" />
</resultMap>
<!-- parameterType指明了参数的类型 这里类型是HashMap #{account}是利用key value 的方式从hashmap中拿到参数值-->
<select id="getByLogin" resultMap="userResultMap" parameterType="HashMap">
SELECT
*
FROM
user
WHERE
status = 2
AND username = #{account}
AND password = #{password}
</select>
</mapper>
在项目中定义 服务层的XXservice类并使用@Service注解标记该类 该类中的XXdao使用@Autowired注解标记(spring框架去实现这个类,spring中不允许自己创建Dao和service,因为Dao和service由spring统一管理)
创建测试类
在测试类中使用注解创建上下文
指明spring测试运行测试用例
在测试类的资源文件中创建应用的上下文配置文件applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">
<!--扫描bean 发现标记@Service@Autoeried等标记的类或属性-->
<!-- 上下文注册类获取bean -->
<context:component-scan base-package="com.zhiyou100.video" />
<!--数据源-->
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://127.0.0.1:3306/zyvideo?characterEncoding=utf8&useSSL=false" />
<property name="username" value="root" />
<property name="password" value="123123" />
</bean>
<!--MyBatis会话工厂,主要是映射-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:mybatis.xml" />
<property name="typeAliasesPackage" value="com.zhiyou100.video.model" />
<property name="mapperLocations" value="classpath*:com/zhiyou100/video/dao/*Dao.xml" />
</bean>
<!--MyBatis Mapper扫描-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
<property name="basePackage" value="com.zhiyou100.video.dao" />
</bean>
<!--数据库事务-->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<!--事务-->
<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" />
</beans>
在测试类的资源文件中 创建mybatis的配置文件
包含父子模块的Maven项目创建方法
首先创建父项目
选中父项的pom.xml文件右键-->Maven--》new Maven module project随后和父项目差不多操作
在pom.xml可以添加许多有关开发者所在组织的信息
当需要统一版本号时,为了升级和维护,建议将版本号version定义成变量的形式
<version>${ version }</version>
<properties>
<version>0.1</version>
<spring.version>4.3.9.RELEASE</spring.version>
</properties>
将项目的配置信息写入pom.xml文件中包括
- JUnit(test)
- spring-test(test)
- 数据库驱动
- 连接池
- MyBatis
- MyBatis和Spring的整合
- Spring的事务
- Spring ORM的支持
- Spring 面向切面的支持
- Spring上下文支持
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.zhiyou100.video</groupId>
<artifactId>video-parent</artifactId>
<!-- 版本号会在多个地方使用 为了统一版本,使用变量易于修改和维护 -->
<version>${ version }</version>
<!-- 表示该父类模块包含的是所有子模块的共有配置信息-->
<packaging>pom</packaging>
<name>Video Parent</name>
<url>http://www.zhiyou100.com</url>
<description>智游在线,智游在线教育平台,提供视频课程,互动学习等服务</description>
<inceptionYear>2017</inceptionYear>
<organization>
<name>智游教育</name>
<url>http://www.zhiyou100.com</url>
</organization>
<!-- 用于配置当前xml文件中要使用的变量 -->
<properties>
<version>0.1</version>
<spring.version>4.3.9.RELEASE</spring.version>
</properties>
<!--这两个jar包所有子项目共有的因此放置于父项目中 -->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<!-- 指明这个依赖项的作用范围 -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<!-- 保证版本的统一性,使用变量,也便于修改 -->
<version>${spring.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<!-- modules用于将当前项目和另外一个或多个项目形成一个聚合项目 -->
<modules>
<module>video-service</module>
</modules>
</project>
在项目中定义数据模型(src/main/java/下)
在项目中定义数据 库访问接口xxxDao(src/main/java/下)并使用@Mapper注解标记该接口
// 在Maven项目中当dao层方法需要多个参数时使用Java容器解决这一问题
在数据 操作对象Dao定义Mapper(映射器)的配置文件(如 XXDao.xml )(该配置文件中编写相应的sql语句,建立模型和数据库之间的映射关系)
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--mapper是映射器 -->
<mapper namespace="com.zhiyou100.video.dao.UserDao">
<!-- 数据库和model的映射关系 -->
<resultMap type="User" id="userResultMap">
<id property="userId" column="user_id" />
<result property="isSystem" column="is_system" />
<result property="isAdmin" column="is_admin" />
</resultMap>
<!-- parameterType指明了参数的类型 这里类型是HashMap #{account}是利用key value 的方式从hashmap中拿到参数值-->
<select id="getByLogin" resultMap="userResultMap" parameterType="HashMap">
SELECT
*
FROM
user
WHERE
status = 2
AND username = #{account}
AND password = #{password}
</select>
</mapper>
在项目中定义 服务层的XXservice类并使用@Service注解标记该类 该类中的XXdao使用@Autowired注解标记(spring框架去实现这个类,spring中不允许自己创建Dao和service,因为Dao和service由spring统一管理)
创建测试类
在测试类中使用注解创建上下文
指明spring测试运行测试用例
在测试类的资源文件中创建应用的上下文配置文件applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">
<!--扫描bean 发现标记@Service@Autoeried等标记的类或属性-->
<!-- 上下文注册类获取bean -->
<context:component-scan base-package="com.zhiyou100.video" />
<!--数据源-->
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://127.0.0.1:3306/zyvideo?characterEncoding=utf8&useSSL=false" />
<property name="username" value="root" />
<property name="password" value="123123" />
</bean>
<!--MyBatis会话工厂,主要是映射-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:mybatis.xml" />
<property name="typeAliasesPackage" value="com.zhiyou100.video.model" />
<property name="mapperLocations" value="classpath*:com/zhiyou100/video/dao/*Dao.xml" />
</bean>
<!--MyBatis Mapper扫描-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
<property name="basePackage" value="com.zhiyou100.video.dao" />
</bean>
<!--数据库事务-->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<!--事务-->
<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" />
</beans>
在测试类的资源文件中 创建mybatis的配置文件
相关文章推荐
- maven+springMVC+mybatis+junit详细搭建过程 ***
- maven+springMVC+mybatis+junit详细搭建过程
- maven+springMVC+mybatis+junit详细搭建过程
- SSM框架搭建详细过程,springmvc、spring、mybatis整合
- maven+springMVC+mybatis+junit详细搭建过程
- maven+springMVC+mybatis+junit详细搭建过程
- Spring-Test + H2 + MyBatis + JUnit 整合-单元测试环境搭建
- 项目SpringMVC+Spring+Mybatis 整合环境搭建(2)-> 测试Spring+Mybatis 环境
- maven+springMVC+mybatis+junit详细搭建过程
- maven+springMVC+mybatis+junit详细搭建过程
- maven spring整合mybatis是使用junit测试报字节序列的错误
- maven+springMVC+mybatis+junit详细搭建过程
- Spring+SpringMvc+Mybatis框架集成搭建教程三(框架整合测试程序开发)
- maven+springMVC+mybatis+junit详细搭建过程
- SpringMVC+Spring+Mybatis框架整合项目搭建总结
- maven+springMVC+mybatis+junit详细搭建过程
- maven+springMVC+mybatis+junit详细搭建过程
- maven+springMVC+mybatis+junit详细搭建过程
- maven+springMVC+mybatis+junit详细搭建过程
- Maven+SpringMVC+Spring+MyBatis连接MySQL数据库详细搭建整合过程