【Java】プレースホルダに値が入らないので改善策が知りたいです。
解決したいこと
プレースホルダに値が入らないので改善方法が知りたいです。
よろしくお願いいたします。
javaでDBにnameとpassを送り、照会をするプログラムを作っています。
プレースホルダ(?)に値が入らなく困っています。
解決方法を教えて下さい。
発生している問題・エラー
DAO
public class AccountDAO {
public boolean getResult(String name, String pass) {
boolean flg = false;
String sql = "select * from account where name = ? and pass = ?;";
try (
Connection con = ConnectMgr.getConnection();
PreparedStatement ps = con.prepareStatement(sql)) {
ps.setString(1, name);
ps.setString(2, pass);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
System.out.println(rs.getString(2));
System.out.println(rs.getString(3));
}
System.out.println(sql);
flg = true;
} catch (SQLException e) {
e.printStackTrace();
System.out.println("アカウント接続失敗");
}
return flg;
}
Main
public class Main {
public static void main(String[] args) {
AccountDAO dao = new AccountDAO();
Scanner sc = new Scanner(System.in);
String name = sc.nextLine();
String pass = sc.nextLine();
boolean flg = dao.getResult(name,pass);
if(flg) {
System.out.println("!!");
}else {
System.out.println();
}
}
}
結果リザルト
ああ(name)
ああ(pass)
(DAO途中で表示していますが、?のままです。)↓
select * from account where name = ? and pass = ?;
!!
自分で試したこと
DAO内で変数の受け渡しができていることは確認済みです。
解決策がわかる方は宜しくお願い致します。
0 likes