Reputation: 15
i m getting some errors ,i m trying to insert some data into a table in mysql db and also want to delete some data from another table simultaneously. i am using jsp,jdbc. i can't understand why i am getting this error, here is the code for my jsp page..
else{ String sql1;
try{
con=DriverManager.getConnection(url,usr,passwd);
String s1=request.getParameter("myText");
String s2=request.getParameter("myText1");
String s3=request.getParameter("myText2");
String s4=request.getParameter("myText3");
String s5=request.getParameter("myText4");
String s6=request.getParameter("myText5");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date issueDate = sdf.parse(s4);
Date expiryDate=sdf.parse(s5);
sql="insert into library.issue values (?,?,?,?,?,?)";
ps=con.prepareStatement(sql);
con.setAutoCommit(false);
ps.setString(1,s1);
ps.setString(2,s2);
ps.setString(3,s3);
ps.setDate(4, new java.sql.Date(issueDate.getTime()));
ps.setDate(5, new java.sql.Date(expiryDate.getTime()));
ps.setString(6,s6);
ps.addBatch(sql);
sql1="delete from library.books where book_id=?";
ps.setString(1,s3);
ps.addBatch(sql1);
int[] count=ps.executeBatch();
con.commit();
response.sendRedirect("complete.jsp");
}catch(SQLException e){
e.printStackTrace();
try{
con.rollback();
}catch(SQLException e1){
e1.printStackTrace();
}
}finally{
try{
if(ps!=null ){
ps.close();
}
}catch(SQLException e1){
e1.printStackTrace();
}
try{
if(con!=null ){
con.close();
}
}catch(SQLException e2){
e2.printStackTrace();
}
}
}
%>
and i am getting the following errors..
java.sql.SQLException: 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.MysqlIO.checkErrorPacket(MysqlIO.java:2975) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1600) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1695) at com.mysql.jdbc.Connection.execSQL(Connection.java:3020) at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1074) at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1008) at com.mysql.jdbc.ServerPreparedStatement.executeBatch(ServerPreparedStatement.java:582) at org.apache.jsp.reaction2_jsp._jspService(reaction2_jsp.java:201) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:617) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2463) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2452) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:744)
library is my db name and issue is my tablename
Upvotes: 0
Views: 608
Reputation: 2924
You cannot combine different SQL statements in PreparedStatement
batch. So either use normal Statement
, or two PreparedStatement
s in one transaction.
Upvotes: 0