Spring MVC + Mybatis 中使用junit

在Spring MVC + Mybatis的项目中我们有时候需要在测试代码中注入Dao操作数据库,对表进行增删改查,实现如下:

这是一般的maven项目项目结构

Spring MVC + Mybatis 中使用junit

测试代码一般写在src/test/java包下。

这是一个普通的测试类,通过mybatis查询某个表的数据。

1 public class SpringMybatisTest {
 2 
 3     @Resource
 4     private static TestDao testDao;
 5     
 6     @BeforeClass
 7     public static void init(){
 8         //初始化spring 获取上下文
 9         ApplicationContext  content = new ClassPathXmlApplicationContext("classpath*:spring/spring.xml");
10         testDao = content.getBean(TestDao.class);
11     } 
12     @Test
13     public void test1(){
14         List<Map<Object,Object>> list = this.testDao.queryListMap();
15         for(Map<Object,Object> map : list){
16             for(Map.Entry<Object, Object> temp : map.entrySet()){
17                 System.out.println("key:"+temp.getKey()+"----"+"value:"+temp.getValue());
18             }
19         }
20     }
21 }

如果在初始化spring的时候有多个xml文件需要导入的时候,可以采用下面的方法:

1
ApplicationContext  content = new ClassPathXmlApplicationContext("classpath*:spring/root.xml");

 在root.xml中引入所有的spring配置文件,具体如下:

1
2
3
4
5
6
7
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans">
 
    <import resource="classpath*:spring/spring.xml"/>
    <import resource="classpath*:spring/spring-mvc.xml"/>
     
</beans>

TestDao接口代码:

1
2
3
4
public interface TestDao {
 
    public List<Map<Object,Object>> queryListMap();
}

对应的xml文件sql:

1
2
3
<select id="queryListMap" resultType="java.util.HashMap">
    select * from test
</select>

test表很简单,如下:

Spring MVC + Mybatis 中使用junit

运行测试方法,结果如下:

Spring MVC + Mybatis 中使用junit

可以正常对数据库进行正常的访问,并不需要写到复杂的controller或者serverice中。

相关推荐