本示例实现了使用可更新结果集获取AUTO_INCREMENT 列的值。
示例如下:
package com.gbase.jdbc.simple;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class SampleUpdatableResultSet {
GBase UP 产品手册 6 应用开发指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 1105
private
static
final
String
URL
=
"jdbc:gbase://192.168.111.95:5258/test?user=sysdba&password=";
public static void main(String[] args) {
try {
(new SampleUpdatableResultSet()).test();
} catch (Exception ex) {
}
}
public void test() throws Exception {
Connection conn = null;
try {
Class.forName("com.gbase.jdbc.Driver").newInstance();
conn = DriverManager
.getConnection(URL);
Statement stmt = null;
ResultSet rs = null;
try {
stmt = conn.createStatement(
java.sql.ResultSet.TYPE_FORWARD_ONLY,
java.sql.ResultSet.CONCUR_UPDATABLE);
// 创建表
stmt.executeUpdate("DROP TABLE IF EXISTS autoIncTutorial");
stmt.executeUpdate("CREATE TABLE autoIncTutorial ("
+ "priKey INT NOT NULL AUTO_INCREMENT, "
+ "dataField VARCHAR(64), PRIMARY KEY (priKey))");
// 获取自增一字段值
rs = stmt.executeQuery("SELECT priKey, dataField "
+ "FROM autoIncTutorial");
rs.moveToInsertRow();
rs.updateString("dataField", "AUTO INCREMENT here?");
rs.insertRow();
rs.last();
int autoIncKeyFromRS = rs.getInt("priKey");
rs.close();
rs = null;
GBase UP 产品手册 6 应用开发指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 1106
System.out.println("Key returned for inserted row: "
+ autoIncKeyFromRS);
} finally {
if (rs != null) {
try {
rs.close();
} catch (SQLException ex) {
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException ex) {
}
}
}
} catch (SQLException ex) {
// 处理错误
System.out.println("SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("VendorError: " + ex.getErrorCode());
} finally {
conn.close();
}
}
}