2016-04-29 12 views
1

Dies ist DAO-Methode, die aufgerufen wird, wenn Benutzer auf die Anmeldeschaltfläche klicken, Loginemail und Pass sind die Anmeldeinformationen vom Benutzer in das Formular eingegeben. Der Spaltenname ‚Passwort‘ im database.Table Namen ist ‚users‘Resultset funktioniert nicht in 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; 
    } 
    } 

Diese Methode in Servlet ist, aufgerufen wird Das Hauptproblem ist, dass Ergebnis Satz funktioniert nicht, wie es sollte, jedoch vorbereitet Aussagen mit 'Insert'sql Abfrage funktioniert gut, bitte helfen.

Dies ist die Methode, die Benutzer registriert, es funktioniert gut, aber wenn ich die Ergebnismenge einführe, gibt es mir Zitronen.

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

können Sie bitte die genaue Ausnahme posten, die Sie bekommen, Code sieht gut aus. – viveksinghggits

+0

Können Sie bitte Stack-Trace nachtragen? – Dhruv

+0

funktionierte nachdem ich {if (rs.next())} durch {while (rs.next()) ersetzt} – Hiresh

Antwort

0

Remove "default" von String pwd und versuchen dies.

String pwd=""; 

Hoffe, das funktioniert !!