获取 AUTO_INCREMENT 列值方法
本示例实现了使用可更新结果集获取 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 { 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; 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(); } } }




