嘿傢伙我已經搜查了許多其他答案,我仍然無法找出這個問題。java.sql.SQLException:「ON」附近:語法錯誤
statement.executeUpdate("CREATE TABLE IF NOT EXISTS recentlyWatched (fileName STRING NOT NULL, fileLocation STRING, viewCount INTEGER, PRIMARY KEY (fileName))");
Class.forName("org.sqlite.JDBC");
connection = DriverManager.getConnection("jdbc:sqlite:media.db");
statement = connection.createStatement();
statement.executeUpdate("INSERT INTO recentlyWatched (fileName, fileLocation, viewCount) VALUES ('"
+ fileName + "', '"
+ fileLocation + "', 0) ON DUPLICATE KEY UPDATE viewCount = '1'");
我已經嘗試了許多方法來解決這個問題,很茫然,每當我試着插入一條記錄,我得到「值java.sql.SQLException:近‘ON’:語法錯誤」。
更新
最終代碼看起來像這樣
statement.executeUpdate("INSERT OR IGNORE INTO recentlyWatched (fileName, fileLocation, viewCount) VALUES ('"
+ fileName + "', '"
+ fileLocation + "', 0)");
statement.executeUpdate("UPDATE recentlyWatched SET viewCount = viewCount + 1 WHERE '" + fileName + "' LIKE fileName;");
我使用JDBC它完全正常,當我沒有對重複KEY UPDATE viewCount ='1'「)。 – Ash
您應該使用PreparedStatement。您的代碼容易受到SQL注入攻擊。 –
我會再次給它一個綁定變量的註釋,並看看我如何去 – Ash