2017-04-03 1 views
0

Oracle Database에서 Spring JDBC 템플릿을 사용하고 있습니다. 성공적인 DB 삽입시 자동 생성 ID 필드를 다시 가져 오려고합니다.Java 코드에서 자동 생성 ID 가져 오기 Oracle 데이터베이스에서

public class EmployeeObject { 
    int employeeId; 
    public int getEmployeeId() { 
     return employeeId; 
    } 
    public void setEmployeeId(int employeeId) { 
     this.employeeId = employeeId; 
    } 
    String firstName; 
    String lastName; 

    public String getFirstName() { 
     return firstName; 
    } 
    public void setFirstName(String firstName) { 
     this.firstName = firstName; 
    } 
    public String getLastName() { 
     return lastName; 
    } 
    public void setLastName(String lastName) { 
     this.lastName = lastName; 
    } 


} 

--DAO Interface--

public interface CreateEmployeeDao { 

    public void insertIntoEmployeeObject(EmployeeObject employeeObject); 
} 

:

것은 여기

DB에서 자동 생성 된 ID를 얻기 위해 제발 도와주세요 나의 샘플 코드 - DAO IMPL--

public class CreateEmployeeDaoImpl implements CreateEmployeeDao{ 

    @Override 
    public void insertIntoEmployeeObject(EmployeeObject employeeObject){ 
      String sqlInsertObject = CreateEmployeeDBQueryConstants.INSERT_OBJECT_DETAILS.toString(); 
      int record = getJdbcTemplate().update(sqlInsertObject, 
        new Object[] { employeeObject.getEmployeeId(), 
            employeeObject.getFirstName(), 
            employeeObject.getLastName()}); 
    } 

} 

DB QUERY CONSTRANT 당신은 (here를 문서화) 인수로 PreparedStatementCreatorKeyGenerator 소요 update 방법의 오버로드 된 버전을 사용할 필요가

public class CreateEmployeeDBQueryConstants {  

    public static final StringBuffer INSERT_OBJECT_DETAILS = new StringBuffer(100); 

     static{  
     INSERT_OBJECT_DETAILS.append("insert into EXPORT_OBJECT " 
       + "(EMPLOYEE_ID,EMPLOYEE_FIRST_NAME,EMPLOYEE_LAST_NAME, " 
       + " values (?,?,?)"); 
     } 
    } 

답변

0

:

과 같이 표시됩니다 귀하의 코드 :

KeyHolder holder = new GeneratedKeyHolder(); 
PreparedStatementCreator creator = new PreparedStatementCreator() { 
    @Override 
    public PreparedStatement createPreparedStatement(Connection con) throws SQLException { 
     PreparedStatement insertStatement = con.prepareStatement(INSERT_OBJECT_DETAILS, new Object[] { 
           employeeObject.getEmployeeId(), 
           employeeObject.getFirstName(), 
           employeeObject.getLastName()})); 
     return insertStatement; 
    } 
}; 
getJdbcTemplate().update(creator, holder); 
System.out.println(holder.getKey()); 
관련 문제