[英]How to Overwrite BLOB FILE in Java
我想更新或覆蓋我的Blob文件,我的數據庫中有圖片字段,我只能添加圖像,但不能更新它。
這是我用於更新字段的代碼:
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);
}
}
}
有人可以建議用於更新或覆蓋Blob文件的代碼。
在使用帶placeholders
“?”的SQL
創建參數后,明智地使用PreparedStatement
API設置參數。 動態創建帶有動態參數的查詢時,請不要使用串聯運算符。
這行不通
String sql="Update Account SET ID='"+value1+"',
Fname='"+value2+"', Lname='"+value3+"',Email='"
+value8+"', Username='"+value4+"', "+ "Password='"
+value5+"',Type='"+value6+"',Status='"+value7+"'
WHERE ID='"+value1+"' ";
您正在上述SQL
字符串中連接Object
類型的變量,這是不公平的。
這種方式要走
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);
希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.