严重异常问题??
请问这个是什么异常啊??
javax.servlet.ServletException: com.microsoft.jdbc.sqlserver.SQLServerConnection.prepareStatement(Ljava/lang/String;I)Ljava/sql/PreparedStatement;
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
org.apache.jsp.post_jsp._jspService(post_jsp.java:118)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause java.lang.AbstractMethodError: com.microsoft.jdbc.sqlserver.SQLServerConnection.prepareStatement(Ljava/lang/String;I)Ljava/sql/PreparedStatement;
org.apache.jsp.post_jsp._jspService(post_jsp.java:63)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)如果把PreparedStatement ps=conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS)改为PreparedStatement ps=conn.prepareStatement(sql)就运行正常,但我需要这样写PreparedStatement ps=conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS),请问怎么解决异常问题?
代码1:(post.jsp)
<%@ page contentType="text/html;charset=GB2312"%>
<%@ page import="java.sql.*"%><%
request.setCharacterEncoding("GB2312");
try
{
String action=request.getParameter("action");
if("post".equals(action))
{
String title=request.getParameter("title");
String cont=request.getParameter("cont");
cont=cont.replaceAll("\n","<br>");
String DBDRIVER="com.microsoft.jdbc.sqlserver.SQLServerDriver";
String DBURL="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=Javapet;SelectMethod=cursor";
String sql="insert into lunTan(pid,rootid,title,cont,pdate,isleaf) values(0,?,?,?,'2008',0)";
Class.forName(DBDRIVER);
Connection conn=DriverManager.getConnection(DBURL,"sa","123456");
conn.setAutoCommit(false);
PreparedStatement ps=conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);
Statement stm=conn.createStatement();
ps.setInt(1,-1);
ps.setString(2,title);
ps.setString(3,cont);
ps.executeUpdate();
ResultSet rsKey=ps.getGeneratedKeys();
rsKey.next();
int Key=rsKey.getInt(1);
rsKey.close();
stm.executeUpdate("update lunTan set rootid="+Key+"where id="+Key);
conn.commit();
conn.setAutoCommit(true);
stm.close();
ps.close();
conn.close();
response.sendRedirect("show.jsp");
}
}
catch(Exception e)
{
e.printStackTrace();
}
%>
<html>
<body>
<center>
<form action="post.jsp" method="post">
<input type="hidden" name="action" value="post">
<table border=1>
<tr>
<td align="center"><input type="text" name="title" size="81"</td>
</tr>
<tr>
<td><textArea cols=80 rows=15 name="cont"></textArea></td>
</tr>
<tr>
<td align="center"><input type="submit" value="提交"></td>
</tr>
</table>
</form>
</center>
</body>
</html>
代码2:(show.jsp)
<%@ page contentType="text/html;charset=GB2312"%>
<%@ page import="java.sql.*"%><%
String DBDRIVER="com.microsoft.jdbc.sqlserver.SQLServerDriver";
String DBURL="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=Javapet";
Class.forName(DBDRIVER);
Connection conn=DriverManager.getConnection(DBURL,"sa","123456");
PreparedStatement ps=conn.prepareStatement("select * from lunTan where pid=0");
ResultSet rs=ps.executeQuery();
%>
<html>
<body>
<a href="post.jsp">发表新帖</a>
<table border=1>
<%
while(rs.next())
{
%>
<tr>
<td><%=rs.getInt("id")%></td>
<td><%=rs.getString("cont")%></td>
</tr>
<%
}
rs.close();
ps.close();
conn.close();
%>
</table>
</body>
</html>
请问这个是什么异常啊??
javax.servlet.ServletException: com.microsoft.jdbc.sqlserver.SQLServerConnection.prepareStatement(Ljava/lang/String;I)Ljava/sql/PreparedStatement;
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
org.apache.jsp.post_jsp._jspService(post_jsp.java:118)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause java.lang.AbstractMethodError: com.microsoft.jdbc.sqlserver.SQLServerConnection.prepareStatement(Ljava/lang/String;I)Ljava/sql/PreparedStatement;
org.apache.jsp.post_jsp._jspService(post_jsp.java:63)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)如果把PreparedStatement ps=conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS)改为PreparedStatement ps=conn.prepareStatement(sql)就运行正常,但我需要这样写PreparedStatement ps=conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS),请问怎么解决异常问题?
代码1:(post.jsp)
<%@ page contentType="text/html;charset=GB2312"%>
<%@ page import="java.sql.*"%><%
request.setCharacterEncoding("GB2312");
try
{
String action=request.getParameter("action");
if("post".equals(action))
{
String title=request.getParameter("title");
String cont=request.getParameter("cont");
cont=cont.replaceAll("\n","<br>");
String DBDRIVER="com.microsoft.jdbc.sqlserver.SQLServerDriver";
String DBURL="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=Javapet;SelectMethod=cursor";
String sql="insert into lunTan(pid,rootid,title,cont,pdate,isleaf) values(0,?,?,?,'2008',0)";
Class.forName(DBDRIVER);
Connection conn=DriverManager.getConnection(DBURL,"sa","123456");
conn.setAutoCommit(false);
PreparedStatement ps=conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);
Statement stm=conn.createStatement();
ps.setInt(1,-1);
ps.setString(2,title);
ps.setString(3,cont);
ps.executeUpdate();
ResultSet rsKey=ps.getGeneratedKeys();
rsKey.next();
int Key=rsKey.getInt(1);
rsKey.close();
stm.executeUpdate("update lunTan set rootid="+Key+"where id="+Key);
conn.commit();
conn.setAutoCommit(true);
stm.close();
ps.close();
conn.close();
response.sendRedirect("show.jsp");
}
}
catch(Exception e)
{
e.printStackTrace();
}
%>
<html>
<body>
<center>
<form action="post.jsp" method="post">
<input type="hidden" name="action" value="post">
<table border=1>
<tr>
<td align="center"><input type="text" name="title" size="81"</td>
</tr>
<tr>
<td><textArea cols=80 rows=15 name="cont"></textArea></td>
</tr>
<tr>
<td align="center"><input type="submit" value="提交"></td>
</tr>
</table>
</form>
</center>
</body>
</html>
代码2:(show.jsp)
<%@ page contentType="text/html;charset=GB2312"%>
<%@ page import="java.sql.*"%><%
String DBDRIVER="com.microsoft.jdbc.sqlserver.SQLServerDriver";
String DBURL="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=Javapet";
Class.forName(DBDRIVER);
Connection conn=DriverManager.getConnection(DBURL,"sa","123456");
PreparedStatement ps=conn.prepareStatement("select * from lunTan where pid=0");
ResultSet rs=ps.executeQuery();
%>
<html>
<body>
<a href="post.jsp">发表新帖</a>
<table border=1>
<%
while(rs.next())
{
%>
<tr>
<td><%=rs.getInt("id")%></td>
<td><%=rs.getString("cont")%></td>
</tr>
<%
}
rs.close();
ps.close();
conn.close();
%>
</table>
</body>
</html>
解决方案 »
- request取值 如何取到
- JSP中java代码中插入html代码问题,急急急~~
- 出现了404错误,看看是哪错了啊
- 关于button和DispatchAction问题请教大家?
- 请帮帮我看看这是什么错误?谢谢
- 大家帮我看下如何取数据
- 关于连接access数据库的问题!急!
- 我想按下以下这个按纽后<input name="login" type="image" value="登录" src="images/login.gif" >跳出新的IE浏览器该如何做
- <<救急。。关于TOMCAT与ACCESS的问题。。高手请进!!!>>在线等!!!
- 图片上传问题
- struts页面动态增加text之类的控键时,对应的formbean怎么取数据?
- 你懂了吗
Statement stm=conn.createStatement();
这个位置错拉
Statement stm=conn.createStatement();
一个是PreparedStatement 下一句Statement,两个连接???下句不要啦。
ResultSet rsKey=ps.getGeneratedKeys();
rsKey.next();
int Key=rsKey.getInt(1);
抛出的异常是因为类型转换产生的。
if ( rsKey.next() ) {
// Retrieve the auto generated key(s).
int key = rsKey.getInt();
}
加个判断。
搞不清楚是不是这个问题我也不确定但是确实是好用了