Исправление динамического SQL в подготовленные операторы - PullRequest
0 голосов
/ 14 декабря 2018

Я начинаю исправление динамических операторов SQL, чтобы предотвратить внедрение SQL.У меня есть веб-интерфейс, который использует более 50 запросов.Я хотел бы написать Java-класс для построения операторов set, не зная заранее примитивный тип, чтобы он мог быть более универсальным?Я надеялся, что есть класс, который я мог бы назвать, о котором я не знаю?Я искал ответ, но я уверен, что я ищу неправильно.(т. е. prepStatement.setInt (1 999); prepStatement.setString (2, «Сэмми») и т. д.)

1 Ответ

0 голосов
/ 14 декабря 2018

Если я правильно понимаю вопрос, вы хотите динамически создавать PreparedStatement объекты во время выполнения, не зная типов параметров в этих операторах, возможно, чтобы ваш код мог работать с разными таблицами?

Из этого я заключаю, что вам нужно выяснить типы данных столбца и вызвать соответствующие PreparedStatement.set* методы.

Оставляя в стороне, как ваш код получит имя таблицы и значения параметров для подготовленного оператораВы можете получить информацию о столбце, позвонив по номеру Connection.getMetaData().getColumns(...).Для каждого столбца соответствующая строка в ResultSet будет содержать столбец DATA_TYPE с int, соответствующим одному из java.sql.Types.

DatabaseMetaData* В интерфейсе 1020 * есть много полезных методов для получения подробной информации о конкретной базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...