如何根据用户使用MySQL检索用户详细信息?

时间:2017-09-07 09:15:39

标签: mysql jsp

我正在开发一个基于Web的医院管理系统,在我的应用程序中,每件事情都很好。但是我的问题是如何在管理员选择他的帐户中的特定用户时检索特定的用户详细信息

patientid   Patient Name    DOB         Gender
PAT39539    ABC           20/12/2000    male
-------     ---           ---------     ----
-------     ---           ---------     ----
-------     ---           ---------     ----

同样明智的 N 有多少个用户帐户,并且分别加载了信息。如果管理员选择一个帐户,他需要获取特定的用户详细信息。如何通过 JSP 执行此操作。

1 个答案:

答案 0 :(得分:0)

我不确定你到底在哪里,以及你为了达到目的而努力实现的目标。由于您仅标记了jsp,因此我提供了一些从UI接受userId的示例方法,并根据该方法返回用户实体。

尝试将DB值保留在属性文件中以使其方便,但我将其保留在方法中。

从UI侧,当用户单击特定用户时,将userid发送到servlet / java部分。示例用户详细信息表,

<table>
<tr>
    <th>User ID</th>
    <th>User Name</th>
    <th>DOB</th>
    <th>Gender</th>
</tr>
<c:forEach items="${users}" var="user">
    <tr>
        <td><a href="GetUserDetails?userId=${user.userId}">${user.userId}</a></td>
        <td>${user.userName}</td>
        <td>${user.dob%}</td>
        <td>${user.gender}</td>
    </tr>
</c:forEach>
</table>

的Servlet /爪哇:

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    Class.forName("com.mysql.jdbc.Driver");
    String url = "jdbc:mysql://localhost:3306/dbname";
    String user = "root";
    String password = "root";
    Connection con = DriverManager.getConnection(url, user, password);
    String userId = request.getparameter("userId");
    String query = "SELECT userid,username from Users WHERE userid = ?";
    PreparedStatement stmt = con.prepareStatement(query);
    stmt.setInt(1, userId);
    ResultSet rs = stt.executeQuery();
    User userObj = new User();
    // Assumed it will return single object.
    while (rs.next()){
        userObj.setUserId(rs.getInt("userid");
        userObj.setUserName(rs.getString("username");
    }

    // Close these in reverse order of creation
    rs.close();
    stmt.close();       
    con.close();
    request.setAttribute("user", userObj); // Will be available as ${user} in JSP
    request.getRequestDispatcher("/WEB-INF/user.jsp").forward(request, response);
}

你的web.xml看起来像,

<servlet>
  <servlet-name>myservlet</servlet-name>
  <servlet-class>com.stackoverflow.examples.GetUserDetails</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>myservlet</servlet-name>
  <url-pattern>/GetUserDetails</url-pattern>
</servlet-mapping>

最后在你的user.jsp页面中,直接从用户对象获取值${user.userName}。如果这有帮助,请告诉我。

干杯..!

相关问题