除了用儲存過程還有以下方法可以獲取:
static int create() throws SQLException {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
// 2.建立連線
conn = JdbcUtils.getConnection();
// conn = JdbcUtilsSing.getInstance().getConnection();
// 3.建立語句
String sql = "insert into user(name,birthday, money) values ('name2 gk', '1987-01-01', 400) ";
ps = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);//引數2最好寫上,雖然Mysql不寫也能獲取但是不代表別的資料庫可以做到
ps.executeUpdate();
rs = ps.getGeneratedKeys();
int id = 0;
if (rs.next())
id = rs.getInt(1);
return id;
} finally {
JdbcUtils.free(rs, ps, conn);
}
}
getGeneratedKeys
ResultSet getGeneratedKeys() throws SQLException
- 獲取由於執行此
Statement
物件而建立的所有自動生成的鍵。如果此Statement
物件沒有生成任何鍵,則返回空的ResultSet
物件。注:如果未指定表示自動生成鍵的列,則 JDBC 驅動程式實現將確定最能表示自動生成鍵的列。
- 返回:
- 包含通過執行此
Statement
物件自動生成的鍵的ResultSet
物件 - 丟擲:
SQLException
- 如果發生資料庫訪問錯誤,或者在已關閉的Statement
上呼叫此方法SQLFeatureNotSupportedException
- 如果 JDBC 驅動程式不支援此方法- 從以下版本開始:
- 1.4