<%@page import="java.util.Enumeration"%>
<%@ page contentType="text/html; charset=utf-8"%>
<%@ page import="java.sql.*" %>
<jsp:useBean id="conn" scope="page" class="user.connMysql"></jsp:useBean>>
<html>
  <head>
   <%
   String name=request.getParameter("user");
   String password=request.getParameter("password");
  
   ResultSet rs=conn.executeQuery("select * from user");
    %>
    <title>注册成功</title>
  </head>
  
  <body>
   <% 
   boolean flag = true;
   while(rs.next())
   {
   if(rs.getString("user").equals(name))
   { 
   %>
   用户<%=name %>已经存在。
   <%
   flag = false;
   break;
   }
   }
  
   if (flag == true)
   {
   int i=4;
   conn.executeUpdate("insert into user user,password,id values "+name+","+password+","+i);
   }
   %>
注册成功!
  </body>
</html>
我想把request获取的东西添加到user表中,该怎么添加?
表结构:
user varchar
password varchar
id varchar 主键其中executeUpdate这个方法是重写过的public int executeUpdate(String sql)
{
int result = 0;
try
{
conn = DriverManager.getConnection(url);
Statement stmt = conn.createStatement();

result = stmt.executeUpdate(sql);
}
catch(SQLException e)
{
e.printStackTrace();
}
return result;
}
为什么我执行完了,给我显示注册成功了,但是表中没有数据呢?
还要用到类似rs.absolute之类的语句么?

解决方案 »

  1.   

    你写那
    conn.executeUpdate("insert into user user,password,id values "+name+","+password+","+i);
    的执行结果跟下面的 注册成功 没关系 当然要显示注册成功了
    另外你根据自己定义的业务逻辑判断sql执行情况  这点得吐槽一下
      

  2.   

    user  该字段为数据库默认的关键字段 要想使用必须加上 [user] ,请注意
      

  3.   


    conn.executeUpdate("insert into [user] [user],password,id values "+name+","+password+","+i);写成这yang了,还是不对啊,每天加上啊!求解释,能搞定问题,分一定给你啊……
      

  4.   

    SQL语句不对啊,values后面有括号,还有你调试一下看你的值获取过来没
      

  5.   


       <%
       String name=request.getParameter("user");
       String password=request.getParameter("password");
      
       ResultSet rs=conn.executeQuery("select * from custom");
        %>
        <title>注册成功</title>
      </head>
      
      <body>
       <% 
       boolean flag = true;
       while(rs.next())
       {
       if(rs.getString("uid").equals(name))
       { 
       %>
       用户<%=name %>已经存在。
       <%
       flag = false;
       break;
       }
       }
      
       if (flag == true)
       {
       String sql ="insert into custom(uid) values (`"+name+"`)";
       conn.executeUpdate(sql);
       out.print("success");
       }
       %>
    改成这个样子了,可是还是不对啊myeclipse报错报的是
    java.sql.SQLException: Unknown column '1111' in 'field list'(这个1111是我穿的数据)
    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:1075)
    at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1008)
    at user.connMysql.executeUpdate(connMysql.java:44)
    at org.apache.jsp.register_005fend_jsp._jspService(register_005fend_jsp.java:103)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Thread.java:619)就是因为我对sql语句了解不深,可是改怎么改啊?
      

  6.   

    conn.executeUpdate("insert into user user,password,id values "+name+","+password+","+i);
    }
    改成
    conn.executeUpdate("insert into user ([user],password,id) values ("+name+","+password+","+i+")");
    }
      

  7.   

    我顶 字符 要加单引号的conn.executeUpdate("insert into user ([user],password,id) values ('"+name+"','"+password+"',"+i+")");