2014-01-17 3 views
0

BLOB 파일을 업데이트하거나 덮어 쓰고 싶습니다. 데이터베이스에 그림 필드가 있습니다. 이미지 만 추가 할 수는 있지만 업데이트 할 수는 없습니다.BLOB 파일을 Java로 덮어 쓰는 법

try{ 

     String value1=txtID.getText(); 
     String value2=txtFirst.getText(); 
     String value3=txtLast.getText(); 
     String value4=txtUser.getText(); 
     String value5=txtPass.getText(); 
     Object value6=cmbType.getSelectedItem(); 
     Object value7=cmbStatus.getSelectedItem(); 
     String value8=txtEmail.getText(); 

     String sql="Update Account SET ID='"+value1+"', Fname='"+value2+"', Lname='"+value3+"',Email='"+value8+"', Username='"+value4+"', " 
     + "Password='"+value5+"',Type='"+value6+"',Status='"+value7+"' WHERE ID='"+value1+"' "; 

     pst=conn.prepareStatement(sql); 

     int updateCount = pst.executeUpdate(); 

     JOptionPane.showMessageDialog(null,"Data has been Updated"); 

    } 

    catch(SQLException e){ 
     JOptionPane.showMessageDialog(null,e); 
    } 

    finally{ 
     try{ 
      rs.close(); 
      pst.close(); 

     } 
     catch(SQLException e){ 
      JOptionPane.showMessageDialog(null,e); 
     } 
    } 
    } 

누군가가 업데이트하거나 blobfile을 덮어 코드를 제안 할 수 있습니다 :

는 다음 업데이트 필드 내 코드입니다.

+1

http://stackoverflow.com/questions/6189637/problems-with-update-statement-in-sqlite Google은 친구입니다. –

+0

[SQL injection] (http://en.wikipedia.org/)에 공개됩니다. wiki/SQL_injection). 매개 변수를 연결하는 대신 SQL 문에서'?'를 사용하십시오. – GriffeyDog

답변

0

PreparedStatement 매개 변수를 사용하여 작성한 후 SQL을 사용하여 매개 변수를 설정하면 placeholders '?'으로 설정하는 것이 현명합니다. 동적 매개 변수를 사용하여 쿼리를 만드는 동안 연결 연산자를 사용하지 마십시오.

이 당신은 불공평 string.That 위 SQLObject 유형의 변수을 연결하는

String sql="Update Account SET ID='"+value1+"', 
    Fname='"+value2+"', Lname='"+value3+"',Email='" 
    +value8+"', Username='"+value4+"', "+ "Password='" 
    +value5+"',Type='"+value6+"',Status='"+value7+"' 
    WHERE ID='"+value1+"' "; 

작동하지 않습니다.

이 방법이 도움이

String sql = String sql="Update Account SET ID=?, Fname=?, Lname=?,Email=?, Username=?, Password=?,Type=?,Status=? WHERE ID=? "; 
PreparedStatement pstmt = con.preparedStatement(sql); 
//set all the values one by one by calling the appropriate 
//setter methods based on field type 
pstmt.setString(1,value1); 
.... 
.... 
//Set the Blob to be updated 
pstmt.setBlob(BLOB_INDEX,BLOB_OBJ); 

희망을 이동하는 것입니다!

+0

어떻게 개선 할 수 있습니까? –

+0

내 대답은 어떻게 개선해야하는지 설명합니다. 그것을 참조로 유지하고 변경하십시오. – Keerthivasan

+0

BLOB_INDEX에 무엇을 넣을지 조금 문제가 있습니다. BLOB_OBJ –

관련 문제