Как мне сделать, чтобы мой логический тип возвращал значение true?Потому что он продолжает возвращать ложный - PullRequest
0 голосов
/ 30 мая 2019

Я использую трехслойную архитектуру.В сервлете, прежде чем перейти к методам, я должен проверить, является ли мой логический параметр истинным или ложным на уровне DAO.Если false, он перейдет к первому методу, если true, он перейдет ко второму методу.

Я не знаю, что пошло не так, но он продолжает возвращать ложный.Так что я застрял с одним методом, хотя я хочу другой метод.Ниже мой слой DAO:

public static RPHS getRph(RPHS rph)  {
        rph_id = rph.getRph_id();

        String searchQuery = "select * from rphs where rph_id='" + rph_id + "'";

        try {
            currentCon = ConnectionManager.getConnection();
            stmt = currentCon.createStatement();
            rs = stmt.executeQuery(searchQuery);
            boolean more = rs.next();

            // if rph exists set the isValid variable to true
            if (more) {
                int rph_id = rs.getInt("rph_id");
                rph.setRph_id(rph_id);
                rph.setValid(true);
            }

            else if (!more) {
                rph.setValid(false);
            }

        }
}

Как мне заставить его вернуть значение true?Что-то не так с моим запросом?

1 Ответ

0 голосов
/ 30 мая 2019

Вы должны использовать PreparedStatement вместо Statement, также использовать динамический запрос, например ..

String searchQuery = "select * from rphs where rph_id=?";

и передать значение? знак.

Ex. stmt.setInt(1,101);

после получения результата в ResultSet use-

if (rs.next())
{
   int rph_id = rs.getInt("rph_id");
   rph.setRph_id(rph_id);
   rph.setValid(true);
}else {
        rph.setValid(false);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...