Web应用程序servlet查询和显示来自mysql的用户信息

问题描述:

我需要为网页应用程序执行任务,即通过查询客户端的会话ID(或其他一些其他信息) 来显示客户端信息方法),然后在my membership数据库中执行mySQL查询。Web应用程序servlet查询和显示来自mysql的用户信息

的顺序应该是如下:1. 客户端登录在 2.比较客户端的密码和会员数据库,如果匹配,客户端将能够访问一些网页 3.这些访问的页面之一(中提到的2)中将包含一个链接,然后将在会员资料库中查询客户的信息。 4.查询行(结果)将显示在网页上,

会员资料库 餐桌名称=会员

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); 

我的问题是:我如何抢在这里我的问题了必要的行?我该如何解决这个问题?

非常感谢你的建议

“我的问题是:我如何在这里抢我的问题的必要行”

使用你的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");   
    } 

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

所以步骤是从用户

  1. 采取用户名+密码
  2. 匹配的行的select count对
  3. 如果计数== 1,则他们验证,否则拒绝
  4. 选择其他字段相匹配的用户名
  5. 显示给用户

不要存储密码明文,所以无论您申请存储密码的变换,还是在执行#2之前将其应用于给定的密码。如果您选择使用户名不是主键,请确保您通过约束至少使其成为“唯一”。