JDBC+MySQL之使用Junit执行单元测试

我们可以使用Junit对数据库操作关键代码进行单元测试。

步骤:

  1. 定义一个类,TestXXX,里面定义方法 testXxx。
  2. 添加Junit的支持。
    右键工程名 — add Library — Junit — Junit4
  3. 在方法上面加注解@Test,其实就是一个标记。
    @Test
    public void testQuery() {
    	......
    }
    
  4. 光标选中方法名字,然后右键执行单元测试,run as — Junit test 。
    或者打开outline视图,然后右键方法,右键同样的方式执行。

代码示例:

  • query
    // 1. 获取连接对象
    onn = JDBCUtil.getConn();
    
    // 2. 根据连接对象,得到statement
    st = conn.createStatement();
    
    // 3. 执行SQL语句,得到结果集
    String sql = "SELECT * FROM employee;";
    rs = st.executeQuery(sql);
    
    // 4. 遍历结果集
    while (rs.next()) {
    	String name = rs.getString("name");
    	int age = rs.getInt("age");
    	System.out.println(name + " is " + age + ".");
    }
    
  • insert
    // 1. 获取连接对象
    conn = JDBCUtil.getConn();
    
    // 2. 根据连接对象,得到statement
    st = conn.createStatement();
    
    // 3. 执行添加语句
    String sql = "insert into employee values(null,'abama',59)";
    
    // 影响的行数,如果大于0,表明操作成功,否则失败。
    int result = st.executeUpdate(sql);
    
    if (result > 0) {
    	System.out.println("添加成功!");
    } else {
    	System.out.println("添加失败");
    }
    
  • delete
    // 1. 获取连接对象
    conn = JDBCUtil.getConn();
    
    // 2. 根据连接对象,得到statement
    st = conn.createStatement();
    
    // 3. 执行删除语句
    String sql = "delete from employee where name='abama'";
    
    // 影响的行数,如果大于0,表明操作成功,否则失败。
    int result = st.executeUpdate(sql);
    
    if (result > 0) {
    	System.out.println("删除成功!");
    } else {
    	System.out.println("删除失败!");
    }
    
  • update
    // 1. 获取连接对象
    conn = JDBCUtil.getConn();
    
    // 2. 根据连接对象,得到statement
    st = conn.createStatement();
    
    // 3. 执行更新语句
    String sql = "update employee set age = 55 where name = 'veeja'";
    		
    //影响的行数,如果大于0,表明操作成功,否则失败。
    int result = st.executeUpdate(sql);
    		
    if(result>0) {
    	System.out.println("更新成功!");
    }else {
    	System.out.println("更新失败!");
    }
    

另外

释放资源方法的定义:

public static void release(Connection conn, Statement st, ResultSet rs) {
	closeRs(rs);
	closeSt(st);
	closeConn(conn);
}

在上面的增删改三个操作中,是不需要用到结果集对象的,但是释放资源的方法需要三个参数,所以我们可以做一些小小的改动。
第一种办法是,调用方法时对参数进行修改,在调用方法的时候,我们改为:

JDBCUtil.release(conn, st, null);	//调用空参数

或者

JDBCUtil.release(conn, st, new ResultSet());	//new一个ResultSet对象

第二种办法就是,函数的重载,

public static void release(Connection conn, Statement st) {
	closeSt(st);
	closeConn(conn);
}

end

你可能感兴趣的:(JAVA)