Я хотел бы использовать подготовленные заявления для many reasons. Но, я хотел бы создать метод, который выглядит следующим образом:Зачем мне нужно подключение для создания PreparedStatements?
/* This opens a connection, executes the query, and closes the connection */
public static void executeNonQuery(String queryString);
Другими словами, я хочу, чтобы моя логика приложения только должны формулировать запросы и подачи в параметрах, но не иметь дело с соединениями & заявления , Однако PreparedStatements создаются из объекта соединения, поэтому в настоящее время я вынужден подготовить строку запроса, используя String.format() - butt уродливый и опасный.
Есть ли способ делать то, что я хочу, без использования String.format()?
Ваш метод executeNonQuery имеет одну проблему: получение соединения. Если вы создаете его каждый раз, когда этот метод выполняется, у вас будут проблемы с производительностью снова и снова (создание и закрытие соединений дорого). Если это инкапсулировано на объект, который создает соединение только при первом вызове, у вас возникнет проблема: когда его закрыть? Может быть, в зависимости от времени? Если вы используете статические поля для кеширования, будьте осторожны, это не будет собрано. Остерегайтесь одновременных вызовов при кешировании соединения: без механизма блокировки (например, synchhonized) вы можете создавать множество подключений. –