3

私は問題に直面しています。それが正しいかどうかはわかりません。

true/false をブール値として返す準備済みステートメント クエリを実行しています。クエリが正常に実行された場合、ブール値として true が返されますが、false として返されます。

私は何をすべきか?

コードは以下のとおりです。

String updateListQuery = "UPDATE RECON_EXCEPTION_ETM_DCR SET GROUP_ID = ?, ASSIGN_DT = SYSDATE WHERE RECON_ID = ? AND UPPER(TRIM(REASON_DESC)) <> 'RECONCILED' AND TRUNC(DUTY_DATE) = ? " ;
try{
    conn = Connect.getConn();
    getGroupNameStmt = conn.prepareStatement(updateListQuery);
    
    getGroupNameStmt.setString(1, groupId);
    getGroupNameStmt.setString(2, reconId);
    getGroupNameStmt.setString(3, defFormatDt);
    
    flag = getGroupNameStmt.execute();
     
     flag = true;
    
}catch(SQLException e){
    flag = false;
    e.printStackTrace();
}finally{
    try{
        conn.commit();
        getGroupNameStmt.close();
        conn.close();
    }catch(SQLException e){
        e.printStackTrace();
    }
4

2 に答える 2

5

INSERT、UPDATE、DELETE などのデータ操作言語 (DML) ステートメントの場合、更新された行数を返すExecuteUpdate()を使用できます。これは、更新ステートメントを実行するときに役立ちます。あなたの場合、挿入するレコードの数がわかっているので、必要ありません。

int updateCount=pst.executeUpdate();

if(updateCount>0)
{
    flag=true;
}
于 2013-07-24T05:05:03.847 に答える
0

何かを更新するには、executeUpdateメソッドを使用する必要があります。戻り値の型は整数です。したがって、次のことを確認するだけです。

if((getGroupNameStmt.executeUpdate())>0)
{
    do something
}
else
{
    do something
}
于 2013-07-24T05:03:38.627 に答える