[英]SQLITE delete method in Java
我有一種方法應該從我的數據庫中刪除一個Person(一行)。 我收到了我在捕獲中創建的錯誤消息。 我剛開始使用數據庫,並且我大多數時候一直在拼湊不同的技術。 我不確定該怎么辦
公共靜態無效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:沒有這樣的列:'SSN'錯誤:找不到人員:“ Fitzgerald Grant”。 沒有記錄被刪除。 在org.sqlite.jdbc3.JDBC3ResultSet.findColumn(JDBC3ResultSet.java:48)在org.sqlite.jdbc3.JDBC3ResultSet.getString(JDBC3ResultSet.java:443)在Test.deletePerson(Test.java:181)在Test.main( Test.java:65)
SELECT SSN FIRSTNAME, LASTNAME, AGE, CREDITCARD FROM ...
^
這與SSN AS FIRSTNAME
相同,即,在查詢的輸出中, SSN
列重命名為FIRSTNAME
。 您顯然忘記了逗號。
無論如何,您都將遇到此錯誤,因為沒有SSN
列。 您必須確保使用此列創建該表,或者如果您具有舊數據庫,則必須添加此列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.