-3

テキストフィールドに入力したユーザー名とパスワードからユーザー名を取得したいと考えています。これらの値をパラメーターとしてメソッドに渡し、印刷用のユーザー名を識別したいと考えています。助けてください。このようなもの...

 public void getUser(String username, String password)throws SQLException{
 String qry = "SELECT UserName From USER....";

   Connection con = null;
   PreparedStatement stmt = null;

   try{

con = DriverManager.getConnection("URL");
stmt = con.prepareStatement(qry);
stmt.executeUpdate();
4

3 に答える 3

0

更新または挿入でない場合は、executeUpdate()を使用しないでください

executeQuery()を使用する必要があります。

これを試して:

Connection con = null;
PreparedStatement stmt = null;
ResultSet rs = null;
String qry = "SELECT UserName From USER where username=? and password=?";
   try{

         con = DriverManager.getConnection("URL");
         stmt = con.prepareStatement(qry);
         stmt.setString(1, username);
         stmt.setString(2, password);
         rs =  stmt.executeQuery();
         while (rs.next()) {
               System.out.println(rs.getString("UserName"));
         }
        ...

よろしく

于 2012-06-15T11:15:52.737 に答える
0

dbからユーザーのフルネームを取得したいとし、テーブル構造は次のようになります。

fullname | username | password

次のことができます。

Connection c = null;
PreparedStatement s = null;
try {
  c = DriverManager.getConnection("URL");
  s = c.prepareStatement("SELECT fullname FROM user WHERE username=? and password=?");
  s.setString(1, username);
  s.setString(2, password);

  ResultSet rs = s.executeQuery();
  if(rs.next()) 
    return rs.getString("fullname");

  return null; // no user found!
} catch(SQLException e) {
  System.err.println(e.getMessage());
} finally {
   // close s and c
}

注:これは、メソッドに渡されるパスワードが、dbに格納されているものと同じ「形式」(つまり、プレーンテキストまたはハッシュ(+ソルト))であることを前提としています。

于 2012-06-15T11:16:02.147 に答える