我使用事先準備好的聲明,使刀片在以下方式:準備好的聲明中得到插入行
String query = "Insert into ROLE (ROLEID,ROLENAME,TYPEID,UPDATETIMESTAMP) values (?,?,?,?)";
Class.forName(driver);
conn = DriverManager.getConnection(url, userName, password);
preparedStatement = conn.prepareStatement(query);
preparedStatement.setInt(1, 0);
preparedStatement.setString(2, roleName);
preparedStatement.setInt(3, roleId);
preparedStatement.setTimestamp(4,null);
preparedStatement.executeUpdate();
這裏角色ID是主鍵,並且正在通過一些觸發序列內部更新。
我在這裏關心的是插入後我需要獲取已插入的ROLEID。我可以使用一個像select * from ROLEID desc這樣的查詢語句,但是如果我找到這個預處理語句使用的特定id,會更好。
有什麼建議?
看看http://docs.oracle。 com/javase/8/docs/api/java/sql/Connection.html#prepareStatement-java.lang.String-int- –
另一種方法是使用數據庫存儲過程從Java進行插入和調用存儲過程。存儲過程應該有一個OUT參數,它只是你的'ROLEID'。因此,您擁有更大的靈活性,並將所有數據庫邏輯保留在後端。 – user75ponic