以Java为例,宿主程序设置SQLCA的示例
时间: 2024-05-08 16:15:33 浏览: 93
以下是一个简单的Java程序示例,演示如何设置SQLCA:
```java
import java.sql.*;
public class Example {
public static void main(String[] args) {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
SQLCA sqlca = new SQLCA(); // 创建SQLCA实例
try {
// 连接数据库
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");
// 准备SQL语句
String sql = "SELECT * FROM users WHERE id = ?";
ps = conn.prepareStatement(sql);
ps.setInt(1, 1); // 设置参数
// 执行查询
rs = ps.executeQuery();
// 处理结果集
while (rs.next()) {
System.out.println(rs.getString("name"));
}
// 获取SQLCA信息
sqlca = ((com.mysql.jdbc.PreparedStatement) ps).getSQLCA(); // 强制类型转换
System.out.println("SQLCODE: " + sqlca.getSqlCode());
System.out.println("SQLSTATE: " + sqlca.getSqlState());
System.out.println("Message: " + sqlca.getMessage());
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 关闭资源
try {
if (rs != null) {
rs.close();
}
if (ps != null) {
ps.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
```
在上面的示例中,我们创建了一个`SQLCA`实例,并将其设置为PreparedStatement对象的返回值。当我们执行查询后,我们可以使用`getSQLCA()`方法获取SQLCA信息,然后将其打印到控制台上。
阅读全文