MyBatis+JUnit测试Dao(Mapper)的用例实现( 不启动web工程 且 未使用SpringMVC管理MyBatis时 )

注:以下 *(星号)+红色字体 处是重点。


步骤提要:

*1、配置MyBatis配置文件sqlMapConfig.xml(名字可任意命名);

2、配好MyBatis的Sql映射mapper文件;

3、编写Dao(Mapper)的接口和*接口实现类;

4、编写JUnit测试用例;


前提准备:

1、配好MyBatis的配置文件sqlMapConfig.xml(名字可任意命名),假设放置位置/weixinSSM/src/main/resources/mybatis/sqlMapConfig.xml,如图

MyBatis+JUnit测试Dao(Mapper)的用例实现( 不启动web工程 且 未使用SpringMVC管理MyBatis时 )_第1张图片

*主要是标签 environments 和 mappers 的配置(typeAliases标签是类别名配置,根据需要配置)

(1)environments标签在MyBatis与SpringMVC框架整合后,不需要配置,否则需要配置,用于数据库连接的配置。

(2)mappers标签在MyBatis与SpringMVC框架整合后,不需要配置,否则需要配置,用于 告诉MyBatis去哪里找映射文件配置

sqlMapConfig.xml文件配置内容如下:





	

	
	
		
		
		
		
		
		
	
	
	
	 
		
			
				
				
					
					
					
					
				
			
		
	 
 	
	
	 
		 
		 	
		 
	 


2、配置sql映射文件,比如上面 sqlMapConfig.xml 文件配置的mappers标签中的 access_token_mapper.xml,文件放置目录层次结构必须同上面main/resources/mybatis/mapper/access_token_mapper.xml,否则会报错。文件位置如下图
MyBatis+JUnit测试Dao(Mapper)的用例实现( 不启动web工程 且 未使用SpringMVC管理MyBatis时 )_第2张图片
access_token_mapper.xml文件配置示例代码片段如下:



  
    
    
    
    
    
  
  
    ACCESS_TOKEN, CREATE_TIME, IS_USE, EXPIRES_IN
  
  ......
  
  ......
开始编码:
1、编写main.java.com.weixin.dao.AccessTokenDao接口和main.java.com.weixin.dao.impl.AccessTokenDaoImpl接口实现类
(1)AccessTokenDao接口代码片段:
package main.java.com.weixin.dao;

import main.java.com.weixin.model.accesstoken.AccessTokenCustom;

public interface AccessTokenDao {
    ......
    AccessTokenCustom selectNewOne() throws Exception;
    ......
}


* (2)AccessTokenDaoImpl接口实现类代码片段:
package main.java.com.weixin.dao.impl;

import java.io.InputStream;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import main.java.com.weixin.dao.AccessTokenDao;
import main.java.com.weixin.model.accesstoken.AccessTokenCustom;

public class AccessTokenDaoImpl implements AccessTokenDao {
    ......
	@Override
	public AccessTokenCustom selectNewOne() throws Exception {
		SqlSession sqlSession = null;
		AccessTokenCustom accessTokenCustom = null;
		try {
			InputStream inputStream = Resources.getResourceAsStream("main/resources/mybatis/sqlMapConfig.xml");
			SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
			sqlSession = factory.openSession();
			accessTokenCustom = sqlSession.selectOne("main.java.com.weixin.dao.AccessTokenDao.selectNewOne");
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			sqlSession.close();
		}
		return accessTokenCustom;
	}
    ......
}

2、编辑JUnit测试用例类, 代码片段如下:

package test.java.com.weixin.dao;

import org.junit.Before;
import org.junit.Test;

import main.java.com.weixin.dao.AccessTokenDao;
import main.java.com.weixin.dao.impl.AccessTokenDaoImpl;
import main.java.com.weixin.model.accesstoken.AccessToken;
import main.java.com.weixin.model.accesstoken.AccessTokenCustom;

public class AccessTokenDaoTest {
	
	private AccessTokenDao accessTokenDao;

	@Before
	public void setUp() throws Exception {
		accessTokenDao = new AccessTokenDaoImpl();
	}
	
	......

	@Test
	public void testSelectNewOne() throws Exception {
		AccessTokenCustom accessTokenCustom = accessTokenDao.selectNewOne();
		System.out.println("AccessToken========="+accessTokenCustom);
	}

    ......

}

最后执行JUnit即可。

执行JUnit的结果,如下图

MyBatis+JUnit测试Dao(Mapper)的用例实现( 不启动web工程 且 未使用SpringMVC管理MyBatis时 )_第3张图片

你可能感兴趣的:(MyBatis+JUnit测试Dao(Mapper)的用例实现( 不启动web工程 且 未使用SpringMVC管理MyBatis时 ))