2013-11-25 48 views
0

我想在我的Java程序运行此查询:执行事务在mysql JAVA

START TRANSACTION; 
INSERT INTO Term(mot) VALUES ('NAN'); 
SELECT LAST_INSERT_ID() INTO @term_id; 
INSERT INTO Paragraphe(xpath,idDoc) VALUES ('/BALADE/doc','d001.xml'); 
SELECT LAST_INSERT_ID() INTO @parag_id; 
INSERT INTO occurrence(occurrence) VALUES (22); 
SELECT LAST_INSERT_ID() INTO @occur_id; 
INSERT INTO Term_Parag(id_term,id_parag,id_occur) VALUES (@term_id, @parag_id,@occur_id); 
COMMIT; 

当我运行这样的程序,我得到一个错误:

query = "START TRANSACTION; "+ 
         "INSERT INTO Term(mot) VALUES (?); "+ 
         "SELECT LAST_INSERT_ID() INTO @term_id; "+ 
         "INSERT INTO Paragraphe(xpath,idDoc) VALUES (?,?); "+ 
         "SELECT LAST_INSERT_ID() INTO @parag_id; "+ 
         "INSERT INTO occurrence(occurrence) VALUES (?); "+ 
         "SELECT LAST_INSERT_ID() INTO @occur_id; "+ 
         "INSERT INTO Term_Parag(id_term,id_parag,id_occur) VALUES (@term_id, @parag_id,@occur_id); "+ 
         "COMMIT;"; 

       ps = conn.prepareStatement(query); 
       ps.setString(1, unWord.content); 
       ps.setString(2, unWord.path); 
       ps.setString(3, doc); 
       ps.setInt(4, unWord.occurence); 

       ps.execute(); 

当我运行该查询直接在Mysql PHPmyadmin中有效。帮帮我 !

+0

你有设置allowMultiQueries为真? http://dev.mysql.com/doc/refman/5.0/en/connector-j-reference-configuration-properties.html – Slowcoder

+2

这不是一个查询。这是9个查询。 –

回答

0

我通过做一个存储过程在MySQL和我的Java程序中调用它解决了这个问题。

+0

这不是一个真正的解决办法,恐怕... –