在Spring MVC + Mybatis的項目中我們有時候需要在測試代碼中注入Dao操作數據庫,對表進行增刪改查,實現如下:
這是一般的maven項目項目結構
測試代碼一般寫在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文件需要導入的時候,可以采用下面的方法:
1ApplicationContext 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 4public 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表很簡單,如下:
運行測試方法,結果如下:
可以正常對數據庫進行正常的訪問,並不需要寫到復雜的controller或者serverice中。