Web应用程序servlet从mysql查询和显示用户信息

时间:2011-11-03 16:27:49

标签: java mysql

我需要为网页应用程序执行任务,即通过查询来显示客户端信息的页面 通过客户端的会话ID(或其他方法),并在我的会员数据库中执行mySQL查询。

序列应如下: 1.客户登录 2.比较客户的密码和会员数据库,如果匹配,客户端将能够访问某些页面 3.其中一个可访问页面(在2中提到)将包含一个链接,然后该链接将在成员资格数据库中查询客户端的信息 4.查询的行(结果)将显示在网页中,并带有适当的css

只是免责声明,我是java的初学者

会员数据库 表的名称=成员

id | first name | last name | address | telephone number

我已经创建并设置了与数据库的jdbc连接:

   public void init () throws ServletException {
      try {
         Class.forName("com.mysql.jdbc.Driver");

         conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/membership","root","");

         stmt = conn.createStatement();

      }  catch (ClassNotFoundException ex) {  // for Class.forName()
         ex.printStackTrace();
      }  catch (SQLException ex) {            // for getConnection()
         ex.printStackTrace();
      }
   }

         String query = "SELECT * FROM member WHERE xxx ";

         ResultSet rset = stmt.executeQuery(query);

我的问题是:我如何在这里为我的问题抓取必要的行?我应该如何解决这个问题?

非常感谢你的建议

2 个答案:

答案 0 :(得分:1)

“我的问题是:我如何在这里为我的问题抓取必要的行?”

使用ResultSet对象(rset)。然后检索您需要的任何列。 类似的东西:

 while (rs.next()) {
    int ID = rs.getInt("id");  
    String fName = rs.getString("first_name");
    String lName = rs.getString("last_name");
    String address = rs.getString("address");
    String phone = rs.getString("telephone_number");        
  }

答案 1 :(得分:0)

首先,我强烈建议您的列名中没有空格(例如,使用'_'代替) 您登录的用户凭据是什么?我想它是用户名或者email_address以及密码。无论第一部分是什么(例如用户名),您都可以将其用作成员表的主键。因此,在他们登录后,您已经拥有了用户名,并在SQL查询中形成了'where'子句。 (如果他们使用email_address登录,则一切都是相同的,使用它代替用户名。)

所以步骤是

  1. 从用户
  2. 获取用户名+密码
  3. 选择与该对匹配的行数
  4. 如果count == 1则会对其进行身份验证,否则拒绝
  5. 选择与用户名
  6. 匹配的其他字段
  7. 向用户显示
  8. 不要存储密码明文,因此无论你申请存储它们的变换,在执行#2之前也要将其应用于给定的密码。如果您选择将用户名不是主键,请确保通过约束使其至少为“唯一”。