2016-08-23 1 views
-2
package application; 

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 

public abstract class Query { 

    private static final String DRIVER_CLASSNAME = "org.sqlite.JDBC"; 
    private static final String PASSWORD = ""; 
    private static final String USERNAME = ""; 

    protected static String base = "data/pezalDB"; 
    private static String JDBC_URL = "jdbc:sqlite:" + base + ".db"; 

    protected static Connection connection; 
    protected static Statement statement; 
    public static ResultSet resultSet; 

    public static void connectToDatabase() throws ClassNotFoundException, SQLException { 
     Class.forName(DRIVER_CLASSNAME); 
     connection = DriverManager.getConnection(JDBC_URL, USERNAME, PASSWORD); 
    } 

    public static void executeSql(String sql) throws SQLException { 

     statement = connection.createStatement(); 
     resultSet = statement.executeQuery(sql); 
    } 

    public static void close() throws SQLException { 
     resultSet.close(); 
     statement.close(); 
     connection.close(); 
    } 

} 

public class TableDB { 

    private int id; 
    private String namePL; 
    private String nameEN; 

    public TableDB(String namePL, String nameEN) { 
     this.namePL = namePL; 
     this.nameEN = nameEN; 
    } 
} 

public class QueryMethods extends Query { 

    static String table = "dictionary"; 
    static String sql; 

    public static void addValue() { 
     try { 
      connectToDatabase(); 

      sql = "UPDATE dictionary SET namePL = 'QWE' WHERE id = 2"; 

      executeSql(sql); 
      close(); 
     } catch (ClassNotFoundException e) { 
      e.printStackTrace(); 
     } catch (SQLException e) { 
      e.printStackTrace(); 
     } 
    } 

    public static void main(String[] args) { 

     addValue(); 

    } 
} 

J'ai un problème:mise à jour Java Database - mal

java.sql.SQLException: query does not return ResultSet 
    at org.sqlite.jdbc3.JDBC3Statement.executeQuery(JDBC3Statement.java:85) 
    at application.QueryMethods.addValue(QueryMethods.java:18) 
    at application.TestQuery.main(TestQuery.java:10) 

Qu'est-ce qui ne va pas? Quand je lis à partir de la base de données, tout va bien mais plus de fonction est mauvaise. N'a pas fonctionné Mise à jour et insertion ....................................... .................................................. .................................................. .................................................. ..................................................

+0

Pouvez-vous fournir la requête SQL s'il vous plaît? Je suppose qu'il y a un problème là-bas. Peut-être n'avez-vous pas exécuté une instruction SELECT mais plutôt une mise à jour/insertion. Cela l'expliquerait. – sagneta

Répondre

4

Vous essayez d'exécuter une instruction SQL UPDATE avec la méthode executeQuery(). executeQuery() ne peut pas prendre des instructions qui mettent à jour la base de données, telles que UPDATE, INSERT ou DELETE. Remplacez cette ligne par:

int rowsUpdated = statement.executeUpdate(sql);