Spring+MyBatis+JUnit整合測試的搭建過程總結
- 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的配置檔案
相關文章
- Mask RCNN測試過程經驗總結CNN
- 從測試小白到測試組長,談談我的測試過程及管理經驗總結
- 介面自動化測試框架搭建總結框架
- spring 整合dubbo 測試搭建Spring
- 測試總結①
- phpcms使用過程的總結PHP
- ORACLE儲存過程中建立子過程的測試!Oracle儲存過程
- 測試經驗總結:測試員的角色
- 【JUnit測試】總結
- 測試流程總結
- 介面測試總結
- 軟體效能測試有哪些測試過程?
- 效能測試總結(二)---測試流程篇
- 系統測試-從研發到測試過程
- 關於SCN的總結測試
- web測試方法總結Web
- 功能測試點總結
- 測試入門總結
- 測試總結報告
- APP黑盒測試總結APP
- 迴歸測試總結
- [總結]無線測試
- 作業測試總結
- 初識效能測試(測試小白麵試總結)
- centos下caffe用GPU編譯搭建過程以及錯誤總結CentOSGPU編譯
- 我的測試儲存過程程式碼儲存過程
- 軟體測試面試過程解析面試
- Selenium+Python自動化測試環境搭建和搭建過程遇到的問題解Python
- 總結開發過程踩到的坑(一)
- 面試題總結: 類的載入過程面試題
- 測試工程師的面試總結工程師面試
- 自己編寫的(測試點總結)
- JMeter測試WebSocket的經驗總結JMeterWeb
- Javascript Promise學習過程總結JavaScriptPromise
- SQL總結(五)儲存過程SQL儲存過程
- 滲透測試技巧總結
- Java Process 阻塞測試總結Java
- Web測試乾貨總結Web