SQLite 데이터베이스 내에서 데이터를 업데이트하는 데 어려움을 겪고 있습니다. 그러나 BinaryStream
행운을 사용해 보았습니다. 그래서 나는 그것을 결정했다. Blob을 업데이트 할 필요가 없습니다. BLOB와 관련된 코드 (SQL 문에서도)를 삭제하면 Update 문이 (제대로) 실행되지 않습니다. BLOB를 추가하기 전에는 모든 것이 잘 동작했습니다. 이제 왜 데이터베이스를 더 이상 업데이트 할 수 없는지 이해할 수없는 것 같습니다. BLOB을 꺼내면 "직원이 데이터베이스에 성공적으로 추가되었습니다"라는 메시지가 나타납니다. 그러나 데이터베이스를 보면 모든 정보가 동일합니다. 내가 삽입, 검색 및 삭제 방법은 괜찮아요, 그냥 업데이 트가 나를 위해 일하는 것 같지 않습니다. 나는 무엇을 해야할지에 대한 아이디어가 부족합니다. 누군가 나를 도울 수 있습니까? BLOB를 업데이트하지 않더라도이 속도로 무엇이든 할게요. 업데이트 또는 업데이트 없음.Java/JDBC/SQLite/BLOB - 주요 결함 (블롭 포함)
코드 -
updateEmployee.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
Connection connection = null;
PreparedStatement pst = null;
try {
Class.forName("org.sqlite.JDBC");
connection = DriverManager.getConnection("jdbc:sqlite:employeeDatabase.sqlite");
connection.setAutoCommit(false);
String sql = "UPDATE employees SET ID =?, Name=?, Gender=?, DOB=?, Address=?, Postcode=?, NIN=?, JobTitle=?, StartDate=?, Salary=?, Email=?, Images=? WHERE ID=?";
pst = connection.prepareStatement(sql);
pst.setInt(1,Integer.parseInt(idTextField.getText()));
pst.setString(2, nameTextField.getText());
pst.setString(3, genderTextField.getText());
pst.setString(4, dobTextField.getText());
pst.setString(5, addressTextField.getText());
pst.setString(6, postcodeTextField.getText());
pst.setString(7, ninTextField.getText());
pst.setString(8, jobtitleTextField.getText());
pst.setString(9, startdateTextField.getText());
pst.setString(10, salaryTextField.getText());
pst.setString(11, emailTextField.getText());
pst.setBytes(12, readFile(s));
pst.executeUpdate();
System.out.println("EmployeeAdded");
JOptionPane.showMessageDialog(null, "Employee has successfully added to the database");
connection.commit();
pst.close();
connection.close();
}
catch (Exception e1) {
JOptionPane.showMessageDialog(null, "Uh oh! Something went wrong!");
}
}
});
감사합니다.
아마 뭔가 잘못 된 것이 아니라 실제 예외를 인쇄 할 수 있습니다. 그것은 당신과 우리에게 잘못된 점을 알릴 수 있습니다. – Shadow
@Shadow java.lang.NullPointerException <예외입니다. 그것 전부. – TheNotoriousCoder
@Shadow ResultSet을 사용해야합니까? – TheNotoriousCoder