java - 如何为 JDBC fetch 语句创建可测试的代码
问题描述
我正在尝试创建一个用于学习的 JDBC 可测试示例代码。所以我从https://www.tutorialspoint.com/jdbc/jdbc-sample-code.htm获取了一个示例代码, 但是我很难创建可测试的方法。在 Eclipse 中,我创建了一个默认测试类,我想测试以检查结果是否返回 7 条记录(因为我从数据库中的员工表中获取 7 条记录)
有人可以给我建议吗?
我现在拥有的代码是
package src;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JdbcTestCode {
public static void main(String[] args) {
System.out.println("Start...");
// JDBC driver name and database URL
String JDBC_DRIVER = "oracle.jdbc.driver.OracleDriver";
String DB_URL = "jdbc:oracle:thin:@..........";
// Database credentials
String USER = "please_login_here";
String PASS = "please_login_here";
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
// STEP 2: Register JDBC driver
Class.forName(JDBC_DRIVER);
// STEP 3: Open a connection
System.out.println("Connecting to database...");
conn = DriverManager.getConnection(DB_URL, USER, PASS);
// STEP 4: Execute a query
System.out.println("Creating statement...");
stmt = conn.createStatement();
String sql;
sql = "SELECT id, first_name, last_name FROM Employee ORDER BY id FETCH FIRST 7 ROWS ONLY";
rs = stmt.executeQuery(sql);
// STEP 5: Extract data from result set
while (rs.next()) {
// Retrieve by column name
int id = rs.getInt("id");
String first = rs.getString("first_name");
String last = rs.getString("last_name");
// Display values
System.out.print("ID: " + id);
System.out.print(", First: " + first);
System.out.println(", Last: " + last);
}
// STEP 6: Clean-up environment
} catch (SQLException se) {
// Handle errors for JDBC
se.printStackTrace();
} catch (Exception e) {
// Handle errors for Class.forName
e.printStackTrace();
} finally {
// finally block used to close resources
try {
if (rs != null)
rs.close();
} catch (SQLException se) {
se.printStackTrace();
}
try {
if (stmt != null)
stmt.close();
} catch (SQLException se2) {
se2.printStackTrace();
} // nothing we can do
try {
if (conn != null)
conn.close();
} catch (SQLException se3) {
se3.printStackTrace();
} // end finally try
} // end try
System.out.println("testing withg JDBC driver");
System.out.println("End...");
}
}
eclipses创建的默认测试代码是package src;
导入静态 org.junit.Assert.*;
import org.junit.Test;
public class JdbcTestCodeTest {
@Test
public void test() {
fail("Not yet implemented");
}
}
我正处于学习阶段,所以如果我问一个非常简单的问题,请多多包涵。
解决方案
推荐阅读
- python - Python:如何删除超过 3 个月的名为垃圾桶的文件夹
- c# - 为表设置主键?
- google-kubernetes-engine - 在 GKE 上跨集群按名称解析 Kubernetes 服务
- vue.js - Vue.js 呈现不同的表单字段
- prolog - 列表中从 N 到 N 的双元素,代码给出 false
- azure - 在 Azure App 服务中创建 Webapp 时出现使用错误
- c# - 如何将最大 SortOrder 作为 int 获得?
- python - 如何将元组转换为简单数字?
- javascript - 从 JS 迁移,tsc 构建中的错误
- android - 如何避免在 Workmanager 中立即执行定期请求