Java连接Oracle通过游标获取不及格学生的信息
时间: 2023-07-14 08:14:23 浏览: 140
以下是Java连接Oracle并通过游标获取不及格学生信息的示例代码:
```java
import java.sql.*;
public class OracleDemo {
static final String JDBC_DRIVER = "oracle.jdbc.driver.OracleDriver";
static final String DB_URL = "jdbc:oracle:thin:@localhost:1521:xe";
static final String USER = "username";
static final String PASS = "password";
public static void main(String[] args) {
Connection conn = null;
CallableStatement stmt = null;
try {
Class.forName(JDBC_DRIVER);
conn = DriverManager.getConnection(DB_URL, USER, PASS);
String sql = "{call GET_FAILED_STUDENTS(?,?)}";
stmt = conn.prepareCall(sql);
// 设置输入参数
stmt.setInt(1, 60); // 设置不及格分数线
// 注册输出参数
stmt.registerOutParameter(2, OracleTypes.CURSOR);
// 执行存储过程
stmt.executeQuery();
// 获取游标对象
ResultSet rs = (ResultSet)stmt.getObject(2);
// 遍历游标结果集
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
int score = rs.getInt("score");
System.out.println("ID: " + id + ", Name: " + name + ", Score: " + score);
}
// 关闭游标和连接
rs.close();
stmt.close();
conn.close();
} catch (SQLException se) {
se.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (stmt != null) stmt.close();
} catch (SQLException se2) {
}
try {
if (conn != null) conn.close();
} catch (SQLException se) {
se.printStackTrace();
}
}
}
}
```
此代码使用了Java的JDBC API连接到Oracle数据库,并使用CallableStatement调用存储过程GET_FAILED_STUDENTS,该存储过程接收一个分数线作为输入参数,返回不及格学生的信息,其中包括学生ID,姓名和分数。在代码中,我们注册了一个输出参数来获取游标对象,然后使用getObject方法来获取结果集。最后,我们遍历结果集并打印出每个学生的信息。注意,此代码需要替换username和password为实际的用户名和密码。
阅读全文