生成したプリペアド ステートメントを使用していますが、Java によってスローされたステートメントで構文エラーが発生します。それでも、PS の toString をコピーしてデータベースの phpmyadmin に貼り付けると、問題なく実行されます。何が間違っているのか、私はかなり困惑していますか?
編集: ps.executeUpdate(query); に変更されました。まだ機能しません。
public int addOrder(Order order){
int rs=false;
try {
String query = "INSERT INTO `orders`(`orderNumber`, `productNumber`, `quantity`, `orderer`, `assembler`, "
+ "`meshType`, `beadType`, `beadCount`, `notes`, `dateCompleted`, `dateSubmitted`, `isComplete`) "
+"VALUES (?,?,?,?,?,?,?,?,?,?,?,?)";
PreparedStatement ps = con.prepareStatement(query);
ps.setString(1, order.getOrderNumber());
ps.setInt(2, order.getProductNumber());
ps.setInt(3, order.getQuantity());
ps.setString(4, order.getOrderer());
ps.setString(5, order.getAssembler());
ps.setString(6, order.getMesh());
ps.setString(7, order.getBeadType());
ps.setInt(8, order.getBeadCount());
ps.setString(9, order.getNotes());
ps.setLong(10, order.getDateCompleted().getTime());
ps.setLong(11, order.getDateSubmitted().getTime());
ps.setBoolean(12, order.getIsComplete());
System.out.println(ps.toString());
rs = ps.executeUpdate(query);
}
catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return rs;
}
addOrder からの ps.toString() が前にあるエラーメッセージ。そして、私が言ったように、toString の関連部分をコピーして phpmyadmin に貼り付けて実行すると、正常に動作します。私が間違っていることのアイデアはありますか?
com.mysql.jdbc.JDBC4PreparedStatement@40378309: INSERT INTO
`orders`(`orderNumber`, `productNumber`, `quantity`, `orderer`,
`assembler`, `meshType`, `beadType`, `beadCount`, `notes`,
`dateCompleted`, `dateSubmitted`, `isComplete`) VALUES
('',251,1,'Mark','','Other','LBB',150,'this is a
test',1357249393009,1357249393010,0)
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: SQL 構文にエラーがあります。sun.reflect の 1 行目の近くで使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。 .NativeConstructorAccessorImpl.newInstance0(ネイティブ メソッド) (sun.reflect.NativeConstructorAccessorImpl.newInstance) (不明なソース) .jdbc.Util.handleNewInstance(Util.java:411) com.mysql.jdbc.Util.getInstance(Util.java:386) com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1053) com. mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4096) com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java: