私のデータベースからPerson(行)を削除するメソッドがあります。 catchで作成したエラーメッセージが表示されます。私はちょうどデータベースで作業を始めました。私は主にさまざまな手法を組み合わせました。私は何をすべきかわからないJavaでのSQLITEの削除メソッド
public static void deletePerson(String firstNameOfPersonToDelete、String lastNameOfPersonToDelete){ ステートメントstmt = null;
try {
// Create database connection
Connection c = DriverManager.getConnection("jdbc:sqlite:PERSON.db");
// Create Statement object
stmt = c.createStatement();
// Get person we're about to delete
String getPersonQuery = "SELECT SSN FIRSTNAME, LASTNAME, AGE, CREDITCARD FROM PERSON WHERE FIRSTNAME = '"
+ firstNameOfPersonToDelete + "' AND LASTNAME = '" + lastNameOfPersonToDelete + "'";
ResultSet rs = stmt.executeQuery(getPersonQuery);
String ssn = rs.getString("SSN");
String firstName = rs.getString("FIRSTNAME");
String lastName = rs.getString("LASTNAME");
String age = rs.getString("AGE");
String creditCard = rs.getString("CREDITCARD");
String deletePersonStatement = "DELETE FROM PERSON WHERE FIRSTNAME = '" + firstName + "' AND LASTNAME = '"
+ lastName + "'";
stmt.executeUpdate(deletePersonStatement);
System.out.println("The following record was deleted:\n" + ssn + "\n" + firstName + " " + lastName + "\n"
+ age + "\n" + creditCard);
System.out.println("\nThe database contains the following records: ");
ArrayList<Object> myPeople = findAllPeople();
for (Object element : myPeople) {
System.out.println(element.toString());
}
} catch (SQLException e) {
e.printStackTrace(System.err);
System.out.println("Error: The person: \"" + firstNameOfPersonToDelete + " " + lastNameOfPersonToDelete
+ "\" was not found. No records were deleted.");
System.out.println("\nThe database contains the following records: ");
ArrayList<Object> myPeople = findAllPeople();
for (Object element : myPeople) {
System.out.println(element.toString());
}
}
}
java.sql.SQLException: no such column: 'SSN'Error: The person: "Fitzgerald Grant" was not found. No records were deleted. at org.sqlite.jdbc3.JDBC3ResultSet.findColumn(JDBC3ResultSet.java:48) at org.sqlite.jdbc3.JDBC3ResultSet.getString(JDBC3ResultSet.java:443) at Test.deletePerson(Test.java:181) at Test.main(Test.java:65)
デバッグのヘルプを求めるときは、実際のスタックトレースを含めることが重要です。あなたの 'catch'ブロックに' e.printStackTrace(System.err); 'を追加して、あなたの質問を編集してください。 –
また、「PreparedStatement」、「パラメータ化されたクエリ」、「SQLインジェクション」についても読んでください。 –
これはフォーラムではありません。が答えられた後に別のものに質問を変更しないでください。別の質問がある場合は、新しい質問をしてください。 –