在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中。