PreparedStatement prepareStatement = connection.prepareStatement("insert...",
new String[] { "your_primary_key_column_name" });
prepareStatement.executeUpdate();
ResultSet generatedKeys = prepareStatement.getGeneratedKeys();
if (null != generatedKeys && generatedKeys.next()) {
Long primaryKey = generatedKeys.getLong(1);
}
I found the answer, this works great. I can insert from JAVA and return it using a key.
Full version:
CREATE TABLE STUDENTS
(
STUDENT_ID NUMBER NOT NULL PRIMARY KEY,
NAME VARCHAR2 (50 BYTE),
EMAIL VARCHAR2 (50 BYTE),
BIRTH_DATE DATE
);
CREATE SEQUENCE STUDENT_SEQ
START WITH 0
MAXVALUE 9999999999999999999999999999
MINVALUE 0;
And Java code
String QUERY = "INSERT INTO students "+
" VALUES (student_seq.NEXTVAL,"+
" 'Harry', 'harry@hogwarts.edu', '31-July-1980')";
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection connection = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:sample", "scott", "tiger");
PreparedStatement ps = connection.prepareStatement(QUERY,
new String[] { "student_id" });
Long studentId = null;
if (ps.executeUpdate() > 0) {
ResultSet generatedKeys = ps.getGeneratedKeys();
if (null != generatedKeys && generatedKeys.next()) {
studentId = generatedKeys.getLong(1);
}
}
source: http://viralpatel.net/blogs/oracle-java-jdbc-get-primary-key-insert-sql/
source
share