java - 我的 'select'方法的返回类型是否错误?

标签 java jsp servlets jdbc dao

我正在尝试制作一个简单的网站。 我的目标是使使用 SQL 插入/选择/更新/删除客户数据成为可能。

虽然我设法使 [insert] 方法起作用,但我的 select 方法根本不起作用。看来返回类型是错误的,但我不确定...... 我是 Java、JSP、SQL 等方面的初学者,所以也许我(再次)对一些基本的东西感到困惑?

有人可以检查我的代码吗?

我尝试更改返回类型,但从未找到答案。 这是我的代码。

在 SQL 中,我创建了一个名为 的表来保存客户数据。 selectMember方法位于java类中 显然,doGet 方法位于 survlet 中。

提前致谢!

public MemberVO selectMember(MemberVO member) {
    Connection con = null;
    PreparedStatement pstmt = null;
    ResultSet rs = null;
    try {
        con = getConnection();
        String sql = "select * from Member where userid=?";
        pstmt = con.prepareStatement(sql);
        rs=pstmt.executeQuery();
        if(rs.next()) {
            String userid = rs.getString("userid");
            String password = rs.getString("password");
            String name = rs.getString("name");
            String email = rs.getString("email");
            String address = rs.getString("address");
        }
    }
        catch(Exception e) {
            throw new RuntimeException("MemberDAO.select() : " + e.getMessage());
        }finally {
            closeConnection(con);
        }
    return member;      
    }
<小时/>
 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String action = request.getParameter("action");
    String userid = request.getParameter("userid");
    MemberDAO dao = new MemberDAO();
    MemberVO member = new MemberVO();
    if(action.equals("insert")) {
        request.setAttribute("action",  action);

    }else if(action.equals("update")) {
        try {
            member = dao.selectMember(userid); //here I have the red warning
            request.setAttribute("member", member);
            request.setAttribute("action",  action);
        }catch(RuntimeException e) {
            request.setAttribute("message",  e.getMessage());
        }
    }
    RequestDispatcher disp = request.getRequestDispatcher("/memberform.jsp");
    disp.forward(request, response);
}

最佳答案

您忘记设置 where userid=? 的条件,您需要如下内容:

pstmt = con.prepareStatement(sql);
pstmt .setString(1, "yourUserId");

关于java - 我的 'select'方法的返回类型是否错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53978402/

相关文章:

java - 使用 ReferenceQueue 和 WeakReference

java - URLRewrite 过滤器不适用于多部分表单

java - 无法解析为 JSP 编译中的类型手动部署在 tomcat 中

java - 从execute()方法中的列表中检索值

java - 需要使用单元测试框架来测试 Servlet、Filters 和 JPA 等 J2EE 组件

无法解析 javax.servlet.http.HTTPServlet 导入,而包的其余部分导入正常

java - 如何使用 ASM 添加自定义注释

java - 如何在 JNI 中访问 jobject 的值

java - Jsp 编译不是用 jboss 即时进行的

java - 为什么此 Servlet 在其 "Thread Per Connection"策略中使用多个线程?