Ich versuche, einen Datensatz in MS Access Datenbank zu aktualisieren UCanAccess, aber ich erhalte diese Mitteilung, wenn ich versuche, es zu tun:Java NoSuchMethodError: com.healthmarketscience.jackcess.Table.isAllowAutoNumberInsert()
net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.5 java.lang.NoSuchMethodError: com.healthmarketscience.jackcess.Table.isAllowAutoNumberInsert()Z
Code:
public void saveBookInfo(){
try {
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
Connection connectDb = DriverManager.getConnection("jdbc:ucanaccess://books.mdb");
String sql = "UPDATE bookInfo SET bookName=?, companyName=?, bossName=?, bossPosition=?, developerName=?, developerCompanyName=? WHERE bookId=?";
PreparedStatement pstmt = connectDb.prepareStatement(sql2);
pstmt.setString(1, jTextField2.getText());
pstmt.setString(2, jTextField3.getText());
pstmt.setString(3, jTextField4.getText());
pstmt.setString(4, jTextField5.getText());
pstmt.setString(5, jTextField6.getText());
pstmt.setString(6, jTextField7.getText());
pstmt.setInt(7, currentBookId);
pstmt.executeUpdate();
System.out.println("\nSuccess!");
closeSC(pstmt, connectDb);
} catch (Exception ex) {
System.out.println("\nException (saveBookInfo): " + ex);
}
}
weiß jemand, was das Problem ist?
(DELETE Abfrage funktioniert gut)
Wo ist currentBookId definiert? –
@Tilak In der MainWindow-Klasse als "public static int currentBookId = 0;" – user3100568
Vergewissern Sie sich, dass Sie Jackcess Version 2.1.3 für Ihr Projekt verwenden. Beachten Sie, dass "jackcess-2.1.3.jar" im Ordner "lib \" der UCanAccess-Distribution verfügbar ist. –