菜鸟,求高手!使用prepareStatement,sql语句执行成功,控制台报错“'?' 附近有语法错误”
菜鸟一个,求高手解救! ~。~
使用prepareStatement,sql语句执行成功,数据库可以看到插入的数据,控制台打印语句:
INSERT INTO RouteCar (CarID,RouteID) VALUES ( ? ,'11')
但是,在myeclipse控制台中总是报错:com.microsoft.sqlserver.jdbc.SQLServerException: '?' 附近有语法错误。
代码如下:
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf8"); int RouteID = Integer.parseInt(request.getParameter("RouteID")); String[] ids =request.getParameterValues("items");// jsp页面传过来的参数,jsp中是checkbox得到的。 String BindState = "已绑定"; for(int i = 0; i < ids.length; i++){ ConnectDB db=new ConnectDB(); db.Connect(); PreparedStatement pstmt1=null; PreparedStatement pstmt2=null; String sql = "INSERT INTO RouteCar (CarID,RouteID) VALUES ( ? ,'" + RouteID + "') "; String sql2 = "UPDATE CarInfo SET BindState ='" + BindState + "' where CarID = ? "; String sql3 = "select * from RouteInfo where RouteID = '"+ RouteID + "'"; int rs = 0; try { pstmt1 = db.conn.prepareStatement(sql); pstmt1.setInt(1,Integer.parseInt(ids[i])); System.out.println(ids[i]); System.out.println(sql); rs = pstmt1.executeUpdate(); pstmt2 = db.conn.prepareStatement(sql2); pstmt2.setInt(1,Integer.parseInt(ids[i])); pstmt2.executeUpdate(); ResultSet rst=db.stmt.executeQuery(sql3); if(rst.next()){ int RouteID2; String StartCity = rst.getString(2); String EndCity = rst.getString(3); String sql4 = "select * from RouteInfo where StartCity = '"+ EndCity + "' and EndCity = '"+ StartCity + "'"; ResultSet rst2=db.stmt.executeQuery(sql4); if(rst2.next()){ RouteID2 = rst2.getInt(1); db.stmt.executeUpdate("INSERT INTO RouteCar (RouteID,CarID) VALUES ('" + RouteID2 + "',?) "); } response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); out.print("<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>"); out.print("<script>"); out.print("alert('添加成功!');"); out.print("window.location.href='RouteManage/RouteCarsBinding.jsp'"); out.print("</script>"); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); out.print("<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>"); out.print("<script>"); out.print("alert('添加失败!');"); out.print("window.location.href='RouteManage/RouteCarsBinding.jsp'"); out.print("</script>"); } finally{ db.Close(); } } }