2012-01-21 6 views
0

私はMySQLデータベースでクエリを実行していますが、JDBCを使用しており、クエリを実行するのにMySQLワークベンチを使用しています。MySQLワークベンチでクエリを実行したときにJDBCエラーが発生しましたが、エラーは発生しません。

私はMySQLワークベンチでそれを実行すると、私が期待していたものが得られますが、私のコードで実行したときに得られます。

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:SQL構文にエラーがあります。ここではライン1

で「SELECT Character.CharacterID、Character.CharacterName、Characte」近くで使用する権利構文についてはMySQLサーバのバージョンに対応するマニュアルを確認してくださいと、Javaです:ここでは

for (int i = 0; i < 3; i++) { 
    try { 
     result = s.executeQuery("USE `arbitrary-hero`; SELECT `Character`.CharacterID, `Character`.CharacterName, `Character`.CharacterLevel, SUM(ItemAttack), SUM(ItemHealth), SUM(ItemAgility), " 
       + "SUM(ItemStrength), SUM(ItemSource) FROM `arbitrary-hero`.`Character` INNER JOIN `arbitrary-hero`.Character_Items ON `Character`.CharacterID = Character_Items.CharacterID INNER JOIN " 
       + "Items ON Character_Items.ItemID = Items.ItemID WHERE Character_Items.Equiped = 1 and `Character`.CharacterName = "+ name[i] +" GROUP BY `Character`.CharacterName;;"); 
     } 
     catch(Exception e) { 
      System.out.println(e); 
     } 
    } 
    s.close(); 

SQLです:

SELECT `Character`.CharacterID, `Character`.CharacterName, `Character`.CharacterLevel, SUM(ItemAttack), SUM(ItemHealth), SUM(ItemAgility), SUM(ItemStrength), 
SUM(ItemSource) FROM `arbitrary-hero`.`Character` INNER JOIN `arbitrary-hero`.Character_Items ON 
`Character`.CharacterID = Character_Items.CharacterID INNER JOIN Items ON 
Character_Items.ItemID= Items.ItemID WHERE Character_Items.Equiped = 1 and `Character`.CharacterName = "Maxinfet" GROUP BY `Character`.CharacterName; 

答えて

3

はわからないが、私はあなたがSQLを一緒にコマンド2を使用することができないと思うので、セミコロンの後にすべてが誤りです。

+0

Dorは正しいです。 'executeQuery'メソッドの呼び出しごとに1つのSQLステートメントをしてください。ちなみに、あなたの接続文字列を使ってmySQLデータベース(あなたの 'USE'文で言及されているもの)を選択するべきでしょう。 –

+0

ありがとうございます。ただ1つのSQLステートメントで問題を修正しました。 –

関連する問題