为什么这个程序会报这样的错语cannot is issue data manipulation statements with executeQuery();请问什么原因哦``package beans;
import java.sql.*;
public class connDB {
Connection conn=null;
Statement stmt =null;
ResultSet rs=null;
public connDB()
{
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (Exception e) {
// TODO: handle exception
System.err.println(e.getMessage());
}
}
public ResultSet executeQuery(String sql)
{
try {
conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/luntan", "root",
"12345678");
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery(sql);
} catch (Exception ex) {
// TODO: handle exception
System.err.println(ex.getMessage());
}   
return rs;
}
public int executeUpdate(String sql)
{
int result=0;
try {
conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/luntan", "root",
"12345678");
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery(sql);
} catch (Exception ex) {
// TODO: handle exception
System.err.println(ex.getMessage());
    result=0;
}   
return result;
}

}<%@ page language="java" contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*" %>
<jsp:useBean id="connBean" scope="page" class="beans.connDB"/>
<html>
  <head>   
    <title>My JSP 'reg_ok.jsp' starting page</title>  
  </head>
  <body>
   <%
       
       String id=request.getParameter("id");
       String name=request.getParameter("name");
       String password=request.getParameter("password");
       String sex=request.getParameter("sex");
       ResultSet rs=connBean.executeQuery("select * from register where username='"+name+"'");
       System.out.println(name);System.out.println(password);
       System.out.println(id);System.out.println(sex);
       if(rs.next())
       {
 %>
         <h3>该用户名己经存在!!请重新<a href>注册</a></h3>
 <%     
        }
        else
        {
              String sql="insert into register values('"+id+"','"+name+"','"+password+"','"+sex+"')";
              int ret=0;
              ret=connBean.executeUpdate(sql);
              out.println(id);
              if(ret!=0)
              {
 %>
                  <h3>用户注册成功!!!</h3>
                  <jsp:forward page="login.jsp"></jsp:forward>
              <% 
              }
              else
              {
              %>
              <h3>用户注册失败!!请重新<a href="reg.jsp">注册</a></h3>
 <%
              }
         }     
  %>
                    
  </body>
</html><%@ page contentType="text/html;charset=gb2312"%>
<html>
<head><title>注册页面</title></head>
<body>
<center>
<h1>欢迎你来注册本网站!</h1>
<br><br>
<form action="regok.jsp" method="post">
ID:<input type="text" name="id"><br>
用户名:<input type="text" name="name"><br>
密&nbsp;&nbsp;码:<input type="password" name="password"><br>
性&nbsp;&nbsp;别:<input type="text" name="sex"><br>
<td><input type="submit" value="提交"/></td>&nbsp;&nbsp;&nbsp;&nbsp;
<td><input type="reset" value="重置"/></td>
</form>
</center>
</body>
</html>

解决方案 »

  1.   

    String sql="insert into register values('"+id+"','"+name+"','"+password+"','"+sex+"')";
    你这四个参数中有为空的字段,但是数据库该字段不为空,导致插入数据库失败的,可以输出获取的值看看;或者给这四个变量赋值,看是否会报错,)
      

  2.   

    看看这个
    http://www.wy186.cn/wlbc/3/2007/8183.html
    可能有帮助
      

  3.   

    用out.println(name),out.println(password)打印还是报空指针异常!报的错为
    org.apache.jasper.JasperException
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:370)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    root cause java.lang.NullPointerException
    org.apache.jsp.judge_jsp._jspService(org.apache.jsp.judge_jsp:70)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    note The full stack trace of the root cause is available in the Apache Tomcat/5.5.12 logs.
      

  4.   

    问题解决了``不错``换过了一种方法``就注册成功了``<%@ page contentType="text/html;charset=gb2312" language="java"%>
    <%@ page import="java.sql.*"%>
    <%@ page import="javax.sql.*"%>
    <%@ page import="javax.naming.*"%>
    <%
    Context ctx=new InitialContext();
    DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/luntan");
    Connection conn=ds.getConnection();
    Statement stmt=conn.createStatement();
    request.setCharacterEncoding("gb2312");
    String username=request.getParameter("nuserame");
    String password1=request.getParameter("password1");
    String password2=request.getParameter("password2");
    String nicheng=request.getParameter("nicheng");

    String str="select * from two where username='"+username+"'";
    ResultSet rs=stmt.executeQuery(str);
    if(!rs.next())
    {
    try
    {
    PreparedStatement pstmt=conn.prepareStatement("insert into two (username,password,nicheng) values(?,?,?)");
    pstmt.setString(1,username);
    pstmt.setString(2,password1);
    pstmt.setString(3,nicheng);
    pstmt.executeUpdate();
    }
    catch(Exception e)
    {
    e.printStackTrace();
    }
    response.sendRedirect("login.html");
    /*out.println("<script language='javascript'>alert('注册成功');parent.location.href='login.html';</script>");*/
    conn.close();
    stmt.close();
    rs.close();
    }
    else
    {
    response.sendRedirect("failure.jsp");
    /*out.println("<script language='javascript'>alert('用户名已经存在');parent.location.href='zhuce.html';</script>");*/
    conn.close();
    stmt.close();
    rs.close();
    }

    %>