2016-04-29 8 views
1

これはユーザーがログインボタンをクリックすると呼び出されるDAOメソッドで、loginemailとpassはユーザーがフォームに入力した資格情報です。 列名がdatabase.Table名に「パスワード」で「ユーザー」DAO mysqlで結果セットが機能しないJava

public String authorize(String loginemail,String pass){ 
     Connection conn=null; 
     boolean correctPassword=false; 
     String pwd="default"; 
     PreparedStatement st=null; 
    try{ 
     Class.forName("com.mysql.jdbc.Driver"); 
     conn=DriverManager.getConnection(DB_URI,DB_USERNAME,DB_USERNAME); 
     st=conn.prepareStatement("SELECT Password FROM users WHERE Email = ?"); 
     st.setString(1,loginemail); 

     ResultSet rs=st.executeQuery(); 


     if(rs.next()) 
    pwd=rs.getString("Password"); //(SQLException)error in this line 
    } 

    catch(SQLException se){ 
     se.printStackTrace(); 
    } 
    catch(Exception e){ 
    e.printStackTrace(); 
    } 
    finally{ 
     return pwd; 
    } 
    } 

です。このメソッドは、サーブレットで呼び出されに、主な問題は、その結果セットは、しかし用意し、それが必要として動作していないです'Insert' SQLクエリの文はうまく動作しますので、助けてください。

これはユーザーを登録する方法ですが、うまくいきますが、結果セットを紹介すると、私にレモンが与えられます。

public class UserDAO{ 
    static final String DB_URI="jdbc:mysql://localhost:3306/social"; 
    static final String DB_USERNAME="root"; 
public boolean createUser(User user){ 

    Connection conn=null; 
    boolean allGood=false; 
    try{ 
    Class.forName("com.mysql.jdbc.Driver"); 
    conn=DriverManager.getConnection(DB_URI,DB_USERNAME,DB_USERNAME); 
    PreparedStatement ps=null; 
    String userQ="INSERT INTO users (Name,Email,Gender,Password) VALUES (?,?,?,?)"; 
    ps=conn.prepareStatement(userQ); 
    ps.setString(1,user.getName()); 
    ps.setString(2,user.getEmailId()); 
    ps.setString(3,user.getGender()); 
    ps.setString(4,user.getPassword()); 

    ps.execute(); 
    conn.close(); 
    ps.close(); 
    allGood=true; 

    } 
    catch(SQLException se){ 
     se.printStackTrace(); 
    } 
    catch(Exception e){ 
     e.printStackTrace(); 
    } 
    finally{ 
     return allGood; 
    } 
} 
+0

あなたが得ている正確な例外を投稿してください。コードは正常に見えますか? – viveksinghggits

+0

スタックトレースを投稿できますか? – Dhruv

+0

{if(rs.next())}を{while(rs.next())}に置き換えた後は、 – Hiresh

答えて

0

String pwdから「default」を削除して、これを試してください。

String pwd=""; 

これはうまくいきます!

関連する問題