2013-07-24 2 views
3

나는 문제가있다. 그게 맞는지 아닌지 전혀 모르겠습니다.Prepared Statement를 실행하여 불리언 값을 얻는 방법?

실제로, 나는 참/거짓을 부울로 반환 할 준비가 된 명령문 쿼리를 실행하고 있습니다. 쿼리가 성공적으로 실행되면, true를 boolean으로 반환합니다. 그러나 그것은 거짓으로 반환됩니다.

어떻게해야합니까 ???

코드는 다음과 같습니다 :?

문자열 updateListQuery = "UPDATE RECON_EXCEPTION_ETM_DCR SET GROUP_ID = ASSIGN_DT = SYSDATE WHERE RECON_ID = AND UPPER (TRIM은 (REASON_DESC)) <> '화해'와 TRUNC (DUTY_DATE) = ? "; 시도 { 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(); 
     } 
+0

'정확하지 않습니까?'우리도 마찬가지입니다. 오류가 발생 했습니까? –

+0

'어떻게해야합니까?' 나도 몰라. 너의 문제는 뭐니? –

+1

나는 어떤 오류도 내지 않았다, 단지, 나는 그것이 어떤 식 으로든 있다는 것을 알고 싶다. 나는 나의 테이블이 업데이트되었는지 아닌지 알 수있다. ??? – Kumar

답변

4

같은 당신이 업데이 트를 실행할 때 유용 할 수있는 행의 수를 갱신 반환 ExecuteUpdate()를 사용할 수 있습니다 DELETE 또는 INSERT, UPDATE 같은 데이터 조작 언어 (DML) 문, 들어 성명서. 귀하의 경우에는 삽입하는 레코드의 수를 알기 때문에 필요하지 않습니다.

int updateCount=pst.executeUpdate(); 

if(updateCount>0) 
{ 
    flag=true; 
} 
+1

고맙다, 그 wotrking .... :) – Kumar

0

업데이트하려면 executeUpdate 메서드를 사용해야합니다. 그것의 리턴 타입은 intege`입니다. 그래서 그냥 확인하는 경우 :

if((getGroupNameStmt.executeUpdate())>0) 
{ 
    do something 
} 
else 
{ 
    do something 
} 
관련 문제