利用JUnit和Spring-test对SpringJDBC组件DAO层测试

借着学习Druid连接池的机会,使用的Spring,将知识点联系起来,简单写了一个利用JUnit和Spring-test对SpringJDBC组件DAO层测试的Demo,分类归在Spring中吧。

 

SpringJDBC组件是Spring提供的一个对底层JDBC的封装,扩展了更多更方便的接口,方便我们对数据库的操作。

 

Demo利用Maven构建,pom.xml文件配置如下(Tomcat、Jetty等暂时不需要,懒得删...)

 


	4.0.0

	com.zhangpl.demo
	druid
	0.0.1-SNAPSHOT
	war

	druid
	http://maven.apache.org

	
		UTF-8
		
		1.0.2
	


	
		
		
			com.alibaba
			druid
			${druid-version}
			
		


		
		
			javax.servlet
			servlet-api
			2.4
			provided
		
		
			javax.servlet.jsp
			jsp-api
			2.0
			provided
		

		
		
			junit
			junit
			4.9
		

		
		
			mysql
			mysql-connector-java
			5.1.9
		

		
		
			commons-logging
			commons-logging
			1.2
			pom
		

		
		
			org.springframework
			spring-test
			3.2.5.RELEASE
		

		
		
			org.springframework
			spring-core
			3.2.5.RELEASE
		
		
			org.springframework
			spring-beans
			3.2.5.RELEASE
		
		
			org.springframework
			spring-aop
			3.2.5.RELEASE
		
		
			org.springframework
			spring-context
			3.2.5.RELEASE
		
		
			org.springframework
			spring-context-support
			3.2.5.RELEASE
		
		
			org.springframework
			spring-jdbc
			3.2.5.RELEASE
		

	

	
		

			
				org.apache.maven.plugins
				maven-compiler-plugin
				
					1.6
					1.6
				
			

			
				org.mortbay.jetty
				jetty-maven-plugin
				8.1.15.v20140411
				
					10
				
			

			
				org.codehaus.cargo
				cargo-maven2-plugin
				1.4.8
				
					
						tomcat7x
						E:\SoftwareDevelopment\Software\apache-tomcat\apache-tomcat-7.0.47-windows-x64\apache-tomcat-7.0.47
					
					
						standalone
						${project.build.directory}/tomcat7x
						
							UTF-8
							UTF-8
							-Dfile.encoding=UTF-8
						
					
				
			
		
	

 

 

然后,数据库中建表users,字段很简单,对应下面的实体类User.java

 

/**
 * @author zhangpl
 * E-mail:[email protected]
 * 2014年8月24日  下午11:34:27
 */
public class User {
	private int id;
	private String username;
	private String password;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
}

 

 

下面是Spring的配置文件applicationContext.cml,注意:

1.连接池使用的是Druid,可不与理会;

2.使用Spring提供的注解;

3.扫描属性文件的配置;

 




	
	
	
	

	
		
		
		
		

		
		
		
		

		
		

		
		

		
		

		
		
		
		

		
		
		

		
		
	

	
		
			
		
	

 

 

UserDAO.java

 

/**
 * @author zhangpl
 * @E-mail [email protected]
 * @Date   2014年8月24日  下午11:30:13
 */
@Repository
public class UserDAO {

	@Resource
	private JdbcTemplate jdbcTemplate;
	
	/**
	 * 查询
	 * Edited by zhangpl
	 * @return List>
	 */
	public List> getUser(){
		List> userList = this.jdbcTemplate.queryForList("select *from users");
		return userList;
	}
	
	/**
	 * 添加
	 * Edited by zhangpl
	 * @param user
	 * @return int
	 */
	public int saveUser(User user){
		int flag = this.jdbcTemplate.update("insert into users(username,password) values ('"+user.getUsername()+"','"+user.getPassword()+"') ");
		return flag;
	}
	
	/**
	 * 删除
	 * Edited by zhangpl
	 * @param id
	 * @return int
	 */
	public int deleteUser(int id){
		int flag = this.jdbcTemplate.update("delete from users where id = "+id);
		return flag;
	}
	
	/**
	 * 修改
	 * Edited by zhangpl
	 * @param user
	 * @return int
	 */
	public int updateUser(User user){
		int flag = this.jdbcTemplate.update("update users set username='"+user.getUsername()+"',password='"+user.getPassword()+"' where id="+user.getId());
		return flag;
	}

	
}

 

 

建立测试类UserDAOTest.java

 

/**
 * @author zhangpl
 * @E-mail [email protected]
 * @Date   2014年8月28日  下午10:56:58
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath*:applicationContext.xml"})
public class UserDAOTest {
	
	@Resource
	UserDAO userDAO;
	
	@Test
	public void testGetUser() throws Exception {
		List list = userDAO.getUser();
		System.out.println(list);
	}
	
	@Test
	public void testSaveUser() throws Exception {
		User user = new User();
		user.setUsername("zhangsan");
		user.setPassword("123456");
		int flag = userDAO.saveUser(user);
		if(flag>0){
			System.out.println("添加成功!");
		}else{
			System.out.println("添加失败");
		}
	}
	
	@Test
	public void testUpdateUser() throws Exception {
		User user = new User();
		user.setId(2);
		user.setUsername("zhangxingsan");
		user.setPassword("654321");
		int flag = userDAO.updateUser(user);
		if(flag>0){
			System.out.println("修改成功!");
		}else{
			System.out.println("修改失败!");
		}
	}
	
	@Test
	public void testDeleteUser() throws Exception {
		int flag = userDAO.deleteUser(2);
		if(flag>0){
			System.out.println("删除成功!");
		}else{
			System.out.println("删除失败!");
		}
	}
}

 

 

测试类中需要注意的地方:

@RunWith:指定单元测试执行类,这里就指定的是SpringJUnit4ClassRunner.class;

@ContextConfiguration:指定Spring的配置文件;

 

记下来是对知识点的一个小结,有不当的地方,欢迎批评指正。

你可能感兴趣的:(Spring)