小弟的目的就是在插入一个记录后,能够把数据库里一个自增字段(就是ID号字段)的值取出来,但是报错报在红色字的这一行
请问各位大侠到底是那里错了呢?
注:数据库这边是没问题的类型都是对应的.
PreparedStatement insertorder;
insertorder=conn.prepareStatement("insert orderform values(?,?,?)",PreparedStatement.RETURN_GENERATED_KEYS);
insertorder.setString(1, username);
insertorder.setString(2, ordertime);
insertorder.setInt(3, 0);
insertorder.executeUpdate();
rsorder=insertorder.getGeneratedKeys();
rsorder.next();
orderid=rsorder.getInt(1);
严重: Servlet.service() for servlet order threw exception
java.lang.AbstractMethodError: com.microsoft.jdbc.sqlserver.SQLServerConnection.prepareStatement(Ljava/lang/String;I)Ljava/sql/PreparedStatement;
at javabean.Orderbean.orderform(Orderbean.java:43)
at servlet.Order.doPost(Order.java:35)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:834)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:640)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1286)
at java.lang.Thread.run(Unknown Source)
请问各位大侠到底是那里错了呢?
注:数据库这边是没问题的类型都是对应的.
PreparedStatement insertorder;
insertorder=conn.prepareStatement("insert orderform values(?,?,?)",PreparedStatement.RETURN_GENERATED_KEYS);
insertorder.setString(1, username);
insertorder.setString(2, ordertime);
insertorder.setInt(3, 0);
insertorder.executeUpdate();
rsorder=insertorder.getGeneratedKeys();
rsorder.next();
orderid=rsorder.getInt(1);
严重: Servlet.service() for servlet order threw exception
java.lang.AbstractMethodError: com.microsoft.jdbc.sqlserver.SQLServerConnection.prepareStatement(Ljava/lang/String;I)Ljava/sql/PreparedStatement;
at javabean.Orderbean.orderform(Orderbean.java:43)
at servlet.Order.doPost(Order.java:35)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:834)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:640)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1286)
at java.lang.Thread.run(Unknown Source)
insert into orderform (col1,col2,col3) values(?,?,?)
他意思是教你写成insert orderform 字段1,字段2,字段3 values (?,?,?)的形式
你要insert的字段都没写
他说你sql语句不对
你断点看看最后运行的sql是什么样子的
这样试试.
这里就会报错rsorder=insertorder.getGeneratedKeys();
相当于说这里就取不了值!感谢各位的回复,但是问题还是没有解决,忘大侠们指教!
驱动确实是2000的JDBC驱动,
3.0的在那里下啊,大哥你提供的连接下到最后就下不了了!!
values后面好像要加一个空格,不知道在sqlserver用不用的
应该是六楼紫竹前辈说的那个问题