Как впихнуть в SQL запрос переменную?

Есть postgres DB, пользователь вводит почту и пароль, по этим данным нужно вывести ему из другой таблицы его счета. Как в запросе в Java закинуть эту переменную, например, почту, в условие where. То есть, к примеру, where u.email = Mail(стринговая переменная, которую вводит пользователь).


Ответы (1 шт):

Автор решения: DmitryD

Самый простой способ:

String sql = "select * from table where email = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, "[email protected]"); 
ps.executeUpdate();
ps.close();
  • в ps.setString(1, "[email protected]"); единица означает порядковый номер подставляемого параметра.

Изучите методы PreparedStatement, для каждого типа есть свои методы (setLong, setDouble, etc...)

Соответственно сеттеры будут принимать первым параметром номер подставляемого параметра.

Вот для изучения других параметризированных SQL запросов через знак вопроса

→ Ссылка