在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文件需要导入的时候,可以采用下面的方法:
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表很简单,如下:
运行测试方法,结果如下:
可以正常对数据库进行正常的访问,并不需要写到复杂的controller或者serverice中。