我正在使用我生成的準備好的語句,並且我在java拋出的語句上出現語法錯誤。然而,當我複製並粘貼到數據庫的phpmyadmin的PS的toString,它完美無瑕地執行。任何想法可能是錯誤的,我相當難住?mysql準備語句java
edit:changed to 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並執行它的工作正常。我做錯了什麼想法?
[email protected]: 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語法錯誤 ;請檢查對應於您的 MySQL服務器版本的手冊,以便在 的第1行在 '?,?,?,?,?,?,?,?,?,?,?)附近使用正確的語法。 sun.reflect.NativeConstructorAccessorImpl.newInstance0(本機方法) 在sun.reflect.NativeConstructorAccessorImpl.newInstance(未知 來源)在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(未知 來源)在java.lang.reflect.Constructor.newInstance(未知源) at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)at com.mysql.jdbc.Util.getInstance(Util.java:386)at com.mysql.jdbc.SQLError.createSQLException (SQLError.java:1053) com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java: 4096)at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4028)at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2490)at com.mysql.jdbc.MysqlIO.sqlQueryDirect( MysqlIO.java:2651) com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2728)at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2678)at com.mysql.jdbc。 StatementImpl.execute(StatementImpl.java:894)at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:732)at cbs.business.internalorders.Database.addOrder(Database.java:232)at cbs。 business.internalorders.IOGui $ 1.widgetSelected(IOGui.java:205)at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source) org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)at cbs.business.internalorders.IOGui。(IOGui.java:218)at cbs.business.internalorders.InternalOrders.main(InternalOrders.java: 15)
不要使用單引號,但反引號:'\'訂單\''應該是「訂單」或者它只是一個複製和粘貼的情況。 – RealHowTo
我刪除了反引號,仍然得到相同的結果。 – john
你可以發表表格結構嗎? – jlordo