나는 생성 한 준비된 문장으로 작업 중이며 java가 던진 문장에 구문 오류가 발생합니다. 그러나 PS의 toString을 복사하여 데이터베이스의 phpmyadmin에 붙여 넣으면 완벽하게 실행됩니다. 어떤 생각이 잘못된 것일까 요, 나는 상당히 엉망이 되었습니까?mysql prepared statement java
편집 : 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()이 앞에옵니다. 그리고 내가 말했듯이, 만약 내가 phpmyadmin에 toString의 관련 부분을 붙여 넣기 복사하고 그것을 잘 작동합니다. 내가 뭘 잘못하고 있는지 알 겠어?
[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 구문에 오류가;1시에 MySQL 서버 버전에 해당하는 설명서에서 올바른 구문을 사용하여 '?,?,?,?,?,?,?,?,?,?,?)'근처에서 사용할 수 있는지 확인하십시오. java.lang.reflect.Constructor.newInstance에서 sun.reflect.DelegatingConstructorAccessorImpl.newInstance에서 sun.reflect.NativeConstructorAccessorImpl.newInstance (알 소스) (알 소스)에서 sun.reflect.NativeConstructorAccessorImpl.newInstance0 (기본 방법) (알 수없는 소스) com.mysql.jdbc.Util.handleNewInstance (Util.java:411) com.mysql.jdbc.Util.getInstance (Util.java:386) com.mysql.jdbc.SQLError.createSQLException (SQLError.java:1053) at com.mysql.jdbc.MysqlIO.checkErrorPacket (MysqlIO.java : 4096) com.mysql.jdbc.MysqlIO.sqlQueryDirect에서 com.mysql.jdbc.MysqlIO.sendCommand (MysqlIO.java:2490에서 com.mysql.jdbc.MysqlIO.checkErrorPacket (MysqlIO.java:4028)) (AT MysqlIO.java:2651) at 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 (알 수없는 소스)(알 수없는 소스) 에서 org.eclipse.swt.widgets.Widget.sendEvent (알 수없는 소스) 에서 org.eclipse.swt.widgets.EventTable.sendEvent (알 수없는 소스) org.eclipse.swt.widgets.Display.runDeferredEvents (알 수없는 소스) (IOGui.java:218)에서 cbs.business.internalorders.InternalOrders.main (InternalOrders.java : 15)
당신은 작은 따옴표하지만 역 따옴표를 사용하지 않습니다. – RealHowTo
백틱을 제거했지만 여전히 동일한 결과를 얻습니다. – john
테이블 구조를 게시 할 수 있습니까? – jlordo