在上一篇里面,我们学会了如何简单的使用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单元测试案例,在通过对数据库的增删改查操作下,就基本介绍完了