Java & HSQLDB ВСТАВИТЬ в проблему - PullRequest
0 голосов
/ 02 августа 2011

У меня проблема, когда я пытаюсь вставить данные в hsqldb с помощью класса Java: Код:

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




     public class Main {
         public static void main(String[] args) throws ParseException {
             try {
                 Connection con = null;
                 String url = "jdbc:hsqldb:file:../db/db";
                 Class.forName("org.hsqldb.jdbcDriver");
                 con = DriverManager.getConnection(url, "sa", null);
                 Statement statement = con.createStatement();
                 Statement stm1 = con.createStatement();

                 statement.executeUpdate("INSERT INTO \"vacDeGroupe\"(\"type\") VALUES ('test')");
                 ResultSet rs = stm1.executeQuery("SELECT * FROM \"vacDeGroupe\"");
                 while(rs.next()) {
                     System.out.println(rs.getString("type"));
                 }

                 stm1.close();
                 statement.close();
                 con.close();

             }
             catch(ClassNotFoundException e) {

             } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
         }

        }

Если я выполняю этот код, у меня есть мои записи + новый У меня есть INSERTВ мою базу данных.Но после того, как я только выполню executeQuery (), строка, которую я вставил, не находится в моей базе данных.Я проверил, autoCommit включен.

... Я не понимаю, что случилось.

(я француз, поэтому извините, если есть ошибки на английском)

1 Ответ

1 голос
/ 02 августа 2011

executeUpdate для ВСТАВКИ, а не executeQuery. И это не возвращает ResultSet; это количество затронутых строк.

...