0

jdbc クエリを実行しようとしています。これが私のコードです

 Timestamp timeStamp = new Timestamp(svnLog.getTime().getTime());

 String query = "Insert into transaction (RevisionId, AuthorId, LogMessage, Time) values (?,?,?,?) ";


    System.out.println("The query is " + query + svnLog.getRevisionId() + "," + svnLog.getAuthorId() + "," + svnLog.getLogMessage() + "," + timeStamp);

    try {

        PreparedStatement stmt = connManager.getConnection().prepareStatement(query);
        stmt.setLong(1, svnLog.getRevisionId());
        stmt.setString(2, svnLog.getAuthorId());
        stmt.setString(3, svnLog.getLogMessage());
        stmt.setTimestamp(4, timeStamp);

        System.out.println("After binding " + stmt.toString());

これにより、次の例外がスローされます。

   After binding com.mysql.jdbc.PreparedStatement@478e4327: Insert into transaction   (RevisionId, AuthorId, LogMessage, Time) values (214,'mknauer','Initial import.','2007-03-01 06:39:21.128') 
   com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?,?,?,?)' at line 1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3277)
at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1402)
at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1317)
at dataminer.db.Transactiondb.addTransaction(Transactiondb.java:40)
at dataminer.svn.download.SVNLogManager.processTransaction(SVNLogManager.java:45)
at dataminer.svn.download.SVNLogManager.processSvnLog(SVNLogManager.java:26)
at dataminer.svn.download.SVNHistoryDownloadMgr.main(SVNHistoryDownloadMgr.java:160)

バインド後に準備されたステートメントを印刷しました。コマンドラインで実行すると、印刷されたクエリは正常に機能します。解決策が文字エンコーディングの my.cnf ファイルを変更することであった他のいくつかの投稿でこのエラーを見ました。この2行をこのファイルに追加しました

character_set_server=utf8
collation_server=utf8_general_ci

エラーは解決しませんでした。

4

0 に答える 0