我遇到了SQLITE和Java的问题。我已经查看了一些建议程序员使用异常的答案。我使用过但我的代码仍然给了我一个错误
java.sql.SQLException: no such table: australia
并且未在创建的数据库上更新记录:
Class.forName("org.sqlite.JDBC");
Connection connect = DriverManager.getConnection("jdbc:sqlite:playlist.sqlite");
System.out.println("Playlist db opened");
Statement saveStatement = connect.createStatement();
saveStatement.executeUpdate(makeTable);
try {
ResultSet getAllSameGenre = artStmt.executeQuery("SELECT * FROM tracklist WHERE genre = '" + storeGenre + "' ORDER BY RANDOM() LIMIT 10");
while(getAllSameGenre.next()){
int id = 1;
String title = getAllSameGenre.getString("title");
String artist = getAllSameGenre.getString("artist");
String genre = getAllSameGenre.getString("genre");
String album = getAllSameGenre.getString("album");
Statement finalRecord = connect.createStatement();
String storeTableName = playlistNameInsert.getText();
String record = "INSERT INTO " + storeTableName + " (id , title, artist , genre , album )" + "VALUES ( '" +id+title+artist+genre+album+ " ' ); " ;
finalRecord.executeUpdate(record);
id ++;
}
saveStatement.close();
connect.close();
}
catch(Exception e){
System.out.println(e);
}
答案 0 :(得分:0)
playlistNameInsert.getText()
的值的值为Australia
,而您没有table
这样的名称。您需要确保只有select from
,insert into
,delete from
或update
table
存在于您工作的database
中用。此外,您需要用逗号分隔值,因此这部分看起来也很可疑:
+id+title+artist+genre+album+
更不用说如果一个值是文本的,那么你需要在它周围包围撇号。看起来你不熟悉SQL语法,所以我认为你应该看一些教程,然后再回到这个问题。