Java如何使用junit执行单元测试以及如何实现数据库增删改查

在上一篇里面,我们学会了如何简单的使用Java连接数据库。现在我们就来看看如何实现数据库常用的操作,即增删改查。
通过观察,我们发现连接数据库的方式每次都是那些代码,固定不变,因此,我们可以将其抽取出来,做一个工具类,来实现数据库的连接以及关闭资源等操作。
没有看的小伙伴可以先看一下上篇博客Java如何连接MySQL、SQLserver数据库

我们抽取出来的工具类如下代码所示:
package util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBCUtil {
	
	private static String url = "jdbc:mysql://localhost/student";//固定格式
	private static String name = "root";//数据库用户名
	private static String password = "root";//数据库密码
	
	/**
	 * 该方法用于获取连接对象
	 */
	public static Connection getConnection() {
		Connection conn = null;
		try {
			Class.forName("com.mysql.jdbc.Driver");
			conn = DriverManager.getConnection(url,name,password);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return conn;
	}
	
	/**
	 * 该方法用于释放资源
	 */
	public static void release(Connection conn,Statement st,ResultSet rs) {
		closeRs(rs);
		closeSt(st);
		closeConn(conn);
	}
	public static void release(Connection conn,Statement st) {
		closeSt(st);
		closeConn(conn);
	}
	
	private static void closeRs(ResultSet rs) {
		try {
			if (rs != null) {
				rs.close();
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			rs = null;
		}
	}
	private static void closeSt(Statement st) {
		try {
			if (st != null) {
				st.close();
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			st = null;
		}
	}
	private static void closeConn(Connection conn) {
		try {
			if (conn != null) {
				conn.close();
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			conn = null;
		}
	}
}

接着我们来看一下如何去使用junit来进行单元测试
不了解Junit的小伙伴可以先去了解一下什么是Junit什么是Junit
在这之前我们需要先进性一些准备工作
首先鼠标右击你的工程名,选择Build Path——>Add Library,选择JUnit。
在这里插入图片描述
Next进入下一步
在这里插入图片描述
Finish结束,接下来就可以使用Junit了
编写一个用于Junit的Java类,然后我们就可以来执行数据的增删改查操作了
代码如下所示:

package test.jdbc;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import org.junit.Test;

import util.JDBCUtil;

/**
 * 使用junit执行单元测试
 */
public class TestDemo {

	//当测试的方法逐渐增多时可以在大纲视图中,找到该方法名,并右击该方法名运行测试。
	@Test
	public void testQuery() {   //查询操作
		Connection connection = null;
		Statement statement = null;
		ResultSet resultSet = null;
		try {
			//1.获取连接对象(这里使用到的JDBCUtil类就是我们上面写的工具类)
			connection = JDBCUtil.getConnection();
			//2.根据连接对象,得到statement
			statement = connection.createStatement();
			//3.执行sql语句,返回ResultSet
			String sql = "select * from t_stu";
			resultSet = statement.executeQuery(sql);
			//4.遍历结果
			while(resultSet.next()) {
				int id = resultSet.getInt("id");
				String name = resultSet.getString("name");
				int age = resultSet.getInt("age");
				System.out.println("id = "+id+"  name = "+name+"  age = "+age);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

	@Test
	public void testInsert() { //添加操作
		Connection connection = null;
		Statement statement = null;
		try {
			//1.获取连接对象
			connection = JDBCUtil.getConnection();
			//2.根据连接对象,得到statement
			statement = connection.createStatement();
			//3.执行添加语句
			String sql = "insert into t_stu values(null , 'LiLong' , 100)";
			//这里返回的结果为影响的行数,如果大于零,则表示操作成功
			int result = statement.executeUpdate(sql);
			if (result > 0) {
				System.out.println("添加成功");
			} else {
				System.out.println("添加失败");
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			JDBCUtil.release(connection, statement);
		}
	}
	
	@Test
	public void testDelete() {  //删除操作
		Connection connection = null;
		Statement statement = null;
		try {
			//1.获取连接对象
			connection = JDBCUtil.getConnection();
			//2.根据连接对象,得到statement
			statement = connection.createStatement();
			//3.执行删除语句
			String sql = "delete from t_stu where name='LiLong'";
			//这里返回的结果为影响的行数,如果大于零,则表示操作成功
			int result = statement.executeUpdate(sql);
			if (result > 0) {
				System.out.println("删除成功");
			} else {
				System.out.println("删除失败");
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			JDBCUtil.release(connection, statement);
		}
	}
	
	@Test
	public void testUpdate() {  //修改操作
		Connection connection = null;
		Statement statement = null;
		try {
			//1.获取连接对象
			connection = JDBCUtil.getConnection();
			//2.根据连接对象,得到statement
			statement = connection.createStatement();
			//3.执行修改语句
			String sql = "update t_stu set age = 99 where name = 'zhaoyun'";
			//这里返回的结果为影响的行数,如果大于零,则表示操作成功
			int result = statement.executeUpdate(sql);
			if (result > 0) {
				System.out.println("修改成功");
			} else {
				System.out.println("修改失败");
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			JDBCUtil.release(connection, statement);
		}
	}
}

使用Junit测试的方式是:鼠标右击你的方法名,当方法名过多时也可在大纲视图中操作,然后运行测试,从而得知你的某一个方法正确与否。
这样,一个简单地Junit单元测试案例,在通过对数据库的增删改查操作下,就基本介绍完了

  • 4
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值