• 締切済み

JAVA+MySQLのテーブルロックについて

Java + MySQL5(MyISAM)でテーブルをロックする処理をかけようと 試みているのですが、上手くロックが掛からずにエラーになります。 テーブル「AAA」と「BBB」にロック処理を行おうと思います。 Connection con = null; Statement ps = null; String sql = null; Class.forName("com.mysql.jdbc.Driver"); con = (Connection) DriverManager.getConnection(url, user, pass); ps = con.createStatement(); sql = "LOCK TABLES AAA WRITE,BBB WRITE"; int a = ps.executeUpdate(sql); sql = "UPDATE AAA SET ~省略~"; a = ps.executeUpdate(sql); sql = "INSERT INTO BBB SET ~省略~"; a = ps.executeUpdate(sql); sql = "UNLOCKS TABLES"; a = ps.executeUpdate(sql); 上記の記述でどこに誤りがあるのでしょうか? お知恵を拝借できないでしょうか。 宜しくお願い致します。

みんなの回答

  • gigamac
  • ベストアンサー率57% (8/14)
回答No.2

少々、気になる部分ですが、Statementクラスのインスタンスpsを使いまわしているようですが、マズイと思います。 各executeUpdateメソッド毎にStatementインスタンスを生成して使用されてはいかかでしょうか? Statementインスタンスは一回クエリーを実行してしまうと、それを利用して再executeUpdateは出来なかった記憶があります。ConectionインスタンスはStatementインスタンスを生成する部分でOKなのですが。

  • Yanch
  • ベストアンサー率50% (114/225)
回答No.1

どこような例外が発生してますか?

関連するQ&A

専門家に質問してみよう