Я заканчиваю работу над классом QueryBuilder
для веб-приложения с базой данных postgresql.Он использует PreparedStatement
для всех запросов и защищен от внедрения SQL.
Однако я хотел «быстрый и грязный» способ представления QueryBuilder
с его toString()
методом, только для целей отладки.Метод соберет строку запроса, как обычно, передается в PreparedStatement
, затем просто заменяет каждый ?
в строке соответствующим значением в одинарных кавычках.toString()
javadoc предупредит других разработчиков, что это небезопасное приближение, которое будет использоваться только для отладки и т. Д. И т. Д.
Я знаю, что значения должны иметь двойные кавычки, удваивающиеся (т. Е. O'Connell
экранируется до O''Connell
).Есть ли какие-то другие специальные символы, которые я должен забыть?Я искал похожие вопросы, но нашел только людей, которых ругают за использование PreparedStatement
(что им следует, пусть показывается запись).
РЕДАКТИРОВАТЬ: не хочет использовать сторонний инструмент дляэта конкретная задача, я действительно просто хочу быстро и грязно здесь.Я все равно ценю ссылки - я могу рассмотреть их для других целей.
ПОСЛЕДНИЕ РЕДАКТИРОВАТЬ: спасибо всем за полезные ссылки.Я просто хочу добавить, что для тех, кто спотыкается здесь из Google, используйте , а не , используйте эти приемы для всего, что попадает в базу данных, используйте PreparedStatement
.