2016-03-20 6 views
0

Ich habe ein Problem mit SQLITE und Java aufgetreten. Ich habe mir hier einige der Antworten angesehen, die den Programmierern die Verwendung von Ausnahmen nahelegten. Was ich auch tat verwenden, aber mein Code gibt mir immer noch diesen einen FehlerINSERT-Operation funktioniert nicht in SQLITE mit Java

java.sql.SQLException: no such table: australia 

und die Aufzeichnungen werden nicht auf der erstellten Datenbank aktualisiert:

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

Sie fügen einen Wert in fünf Spalten ein. Wenn Sie das SQL nach der Variablensubstitution ausdrucken, ist das Problem typisch. –

+0

Ich denke, es ist das Problem mit Ihrer einfügen Abfrage.Bitte aktualisieren Sie die INSERT INTO TABLE_NAME (ID, TITEL, Künstler, GENRE, ALBUM) VALUES (4, 'TITLE', 'ARTIST', 'GENRE', 'ALBUM_NAME'); " – Sreejin

Antwort

0

Der Wert playlistNameInsert.getText() den Wert von Australia hat, während Sie eine table mit einem solchen Namen haben. Sie müssen sicherstellen, dass Sie nur select from, insert into, delete from oder updatetable s, die in der database Sie arbeiten mit. Außerdem müssen Sie die Werte durch Komma trennen, so dass dieser Teil fischig scheint auch:

+id+title+artist+genre+album+ 

nicht zu erwähnen, dass, wenn ein Wert Text ist, dann müssen Sie Apostrophe um ihn herum wickeln. Es scheint, dass Sie nicht fließend mit SQL-Syntax sind, also denke ich, dass Sie ein paar Tutorials ansehen sollten und dann auf dieses Problem zurückkommen.