uname
user_id我觉得你是不是弄错了!!

解决方案 »

  1.   

    下面是源码,麻烦楼上的几位大哥帮忙看看
    Register:package com.migo2008.servlet;import java.io.IOException;
    import java.io.PrintWriter;
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import com.migo2008.javabean.*;public class Register extends HttpServlet { private Operater op;
    private User user;
    public void destroy() {
    super.destroy(); 
    } public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    doPost(request,response);
    } //注册新用户
    public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    String name=request.getParameter("uname");
    String password=request.getParameter("upassword");
    user=new User();
    user.setUname(name);
    user.setUpassword(password);
    if(!user.isExist()){
    op.exeuteInsert(user);
    RequestDispatcher req=request.getRequestDispatcher("forward.jsp");
    req.forward(request, response);
    }else{
    RequestDispatcher req=request.getRequestDispatcher("error.jsp");
    req.forward(request, response);
    }
    } public void init() throws ServletException {
    op=OperaterFactory.getOperater();
    }}
    Operaterpackage com.migo2008.javabean;import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;/*
     * 完成对IOperater的实现,对表进行操作
     */
    public class Operater implements IOperater{
    private String sql =null;
    private DBConnection con =null;
    private PreparedStatement ps =null;
    private ResultSet rs =null;

    //实现删除
    public void executeDelete(User user) {

    }
    //实现按ID查询
    public ResultSet executeSelecte(String id) {
    con=new DBConnection();
    sql="select [user_id] from [user] where [user_id]=?";
    try {
    ps=con.getConnect().prepareStatement(sql);
    ps.setString(1, id);
    rs=ps.executeQuery();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    return rs;
    }
    //实现添加
    public void exeuteInsert(User user) {
    con= new DBConnection();
    sql="insert into [user] values(?,?)";
    try {
    ps=con.getConnect().prepareStatement(sql);
    ps.setString(1,user.getUname());
    ps.setString(2, user.getUpassword());
    ps.executeUpdate();
    ps.close();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }

    //实现修改
    public void executeUpdate(User user) {


    }}User:
    [code=Java]
    package com.migo2008.javabean;import java.sql.ResultSet;
    import java.sql.SQLException;
    public class User {
    private String uname;
    private String upassword;
    private boolean exist;
    public String getUname() {
    return uname;
    }
    public void setUname(String uname) {
    this.uname = uname;
    }
    public String getUpassword() {
    return upassword;
    }
    public void setUpassword(String upassword) {
    this.upassword = upassword;
    }

    //判断用户是否存在

    public boolean isExist(){
    Operater op=OperaterFactory.getOperater();
    try {
    ResultSet rs=op.executeSelecte(uname);
    System.out.print(rs.next());
    if(rs.next())
    {
    exist=true;
    }
    else{
    exist=false;
    }
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    return exist;
    }
    }[/code]
      

  2.   

    sql="select [user_id] from [user] where [user_id]=?";
    你是要根据用户ID去查找这个用户是否存在还是想这样
    sql="select [user_id] from [user] where [user_name]=?";
    根据用户名uname查ID是否存在?
    如果是第一种,参数应该是要查找的用户ID.
      

  3.   


    user表中只有两个字段:user_id,user_password.
    sql="select [user_id] from [user] where [user_id]=?";
    作用是要根据用户输入查询表中是否存在这个用户 
      

  4.   

    可能是rs的指针位置问题用下面的代码覆盖下你的方法,看看//判断用户是否存在
    public boolean isExist(){
            Operater op=OperaterFactory.getOperater();
            try {
                ResultSet rs=op.executeSelect(uname);
                rs.beforeFirst();
                if(rs.next())
                {
                    exist=true;
                }
                else{
                    exist=false;
                }
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return exist;
        }
      

  5.   

    的确是什么也没改啊!!!
    这用的是myeclipse的内置tomcat,这算不算bug???
      

  6.   

    o ! 那个给我发消息的就是你啊!!呵呵!我从来不建议用eclipse内置的Tomcat,原因很简单,因为正式的运行环境不适那样的。Tomcat还是单独运行比较好
    1 用控制台运行,可以很清楚的看到各种输出
    2 用服务运行,需要配合第三方的日志工具,在我的CSDN下载资源里面有。类似lunix的 tail 工具