2017-07-05 21 views
1

UCanAccessを使用して新しく挿入されたMS Accessの行のデフォルト値を取得する方法が不思議でした。Insert(UCanAccess)のJDBC PreparedStatementのデフォルト値

表:my_tbl

Column Type 
-------+----------------------- 
ID  | PrimaryKey, AutoNumber 
Label | Text 
DT  | Date/Time, Default: Now() 

コード

PreparedStatement st = conn.prepareStatement("INSERT INTO my_tbl (Label) VALUES (?)", Statement.RETURN_GENERATED_KEYS); 
st.setString(1, "my new label"); 

int insertResult = st.executeUpdate(); 
if(insertResult > 0) { 
    ResultSet rs = st.getGeneratedKeys(); 
    rs.next(); 
    System.out.println("ID: " + rs.getInt(1)); 
} 

//How do I get the generated value of DT 

制限

UCanAccessはSQLExceptionを発生するので、私はキーワードDEFAULTを使用することはできません(SO discussion about DEFAULT):

Caused by: org.hsqldb.HsqlException: DEFAULT keyword cannot be used as column has no DEFAULT 

私にはもう1つ解決策がありますか?

答えて

1

どのように私はあなたがフォーム

SELECT DT FROM my_tbl WHERE ID = ? 

の別のSELECTクエリを実行して、取得するために、rs.getInt(1)によって返された値を使用する必要がありますDT

の生成された値を得るのですかそのクエリに対してexecuteQueryを呼び出すことによって生成されたResultSetからの値。

関連する問題