Я довольно новичок в JDBC, так что это, вероятно, очень простой вопрос.
Мне нужно выполнить несколько операторов SQL, поэтому я пытаюсь написать общий метод "runSQLResultSet
", который принимает оператор String
sql и возвращает ResultSet
. Я хочу, чтобы он позаботился об открытии соединения с базой данных, выполнении оператора, сохранении ResultSet
в CachedRowSetImpl
объекте (чтобы оно сохранялось после закрытия соединения) и закрытии соединения. Я создал метод, который делает это, и он работает.
Моя проблема сейчас в том, что я хочу использовать его для динамических операторов, построенных с переменными. Я оглянулся, и мне кажется, что я должен изменить свой метод на PreparedStatement
вместо простого String
. Затем я могу построить PreparedStatement
на другой стороне и передать его методу. Проблема в том, что я не могу создать PreparedStatement
без объекта Connection
. Я могу открыть соединение перед подготовкой оператора, но это противоречит моей цели: вынести обработку базы данных в метод runSQLResultSet
. Мне нужен способ построить оператор SQL с динамическими компонентами без объекта подключения и передать его методу, который затем выполнит его. Есть ли способ сделать это с PreparedStatement
? Есть ли другой объект оператора, который я могу использовать вместо этого? Иначе - есть ли лучший способ сделать это?