2011-08-02 12 views
0

TO JavaとHSQLDB INSERT: コードは次のとおりです。私はJavaクラスでHSQLDBにデータを挿入しようとすると、私は問題をした問題

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(); 
      } 
     } 

     } 

私は私のエントリを持ってこのコードをexecした場合+新しい私は自分のデータベースにINSERT INTOを持っています。 しかし、私がexecuteQuery()を実行した後に、私が挿入した行は自分のデータベースにありません。 私はチェックしました、autoCommitは真です。

...何が起こったのか分かりません。

(私はフランス人だので、いくつかの英語の誤差がある場合ごめんなさい)

答えて

1

executeUpdate INSERT、ないexecuteQueryため。そしてそれはResultSetを返しません。影響を受ける行の数です。

+0

ありがとう、私はそれを変更しましたが、これは私のテスト中になぜそれが動作しないかを見つけるために導入したばかりのミスでした。 問題はまだ同じです: "insert to"とexecuteQueryを実行すると新しい行を読み込めますが、(行を挿入するコードを実行した後で)executeQuery私は前に挿入した線がないテーブルをすべて持っています。 テーブルに挿入するときに問題があると思いますが、どこで、なぜ...理解できません。 問題を理解していただければ幸いです。 – Firebayll

+0

OK、finaly私は他のポストに答えを見つける: 私は2つのオプションがかかわりを起動しました: hsqldb.write_delay = falseを シャットダウン=真 だから私は私の文字列のURLにそれらを追加: 文字列をurl = "jdbc:hsqldb:file:../db/db; hsqldb.write_delay = false; shutdown = true"; それは動作します! – Firebayll

関連する問題