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;
}
}
あなたが得ている正確な例外を投稿してください。コードは正常に見えますか? – viveksinghggits
スタックトレースを投稿できますか? – Dhruv
{if(rs.next())}を{while(rs.next())}に置き換えた後は、 – Hiresh