2016-03-20 13 views
0

SQLiteとJavaで問題が発生しました。私はプログラマが例外を使うように提案した答えのいくつかを見てきました。これは私が使用しましたが、私のコードはまだJavaを使用してSQLiteでINSERT操作が機能しない

java.sql.SQLException: no such table: australia 

私は、この1つのエラーを与えているし、レコードが作成されたデータベースに更新されていません:、playlistNameInsert.getText()の値が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); 
       } 
+1

5つの列に1つの値を挿入しています。典型的なように、変数置換後にSQLを出力した場合、問題は明らかになります。 –

+0

あなたのinsertクエリで問題があると思います。INSERT INTO TABLE_NAME(ID、タイトル、アーティスト、GENRE、ALBUM)のようなINSERTステートメントを更新してください VALUES(4、 'TITLE'、 'ARTIST'、 'GENRE' 'ALBUM_NAME'); " – Sreejin

答えて

0

そのような名前のtableはありません。使用しているdatabaseには、select frominsert intodelete from、またはupdatetableが存在することを確認する必要があります。また、あなたは、カンマで値を分離する必要があるので、この部分は、同様に魚のようだ:

+id+title+artist+genre+album+ 

値がテキストである場合、あなたはその周りにアポストロフィをラップする必要があることは言うまでもありません。あなたはSQL構文に慣れていないようですので、いくつかのチュートリアルを見てからこの問題に戻るべきだと思います。

関連する問題