Я разрабатываю приложение в java для обработки данных и загрузки его в базу данных MySQL. С помощью этого приложения я повторяю все файлы, которые необходимо обработать в каталоге. С каждой строкой файла я храню данные из этой строки в различные переменные и делаю некоторые преобразования, чтобы получить все данные, готовые для загрузки в мою базу данных. Затем я планирую загрузить данные этой строки в базу данных с помощью запроса PreparedStatement и INSERT.JDBC connection pooling advice
Я не знаком с лучшими практиками для моей ситуации. Я в процессе обучения этому себе, поэтому я ищу небольшое руководство, чтобы убедиться, что я делаю это правильно в первый раз.
Было бы неуместным просто открыть соединение в начале среды выполнения приложения (то есть открыть его один раз)? Для каждого запроса на вставку я создавал и закрывал PreparedStatement, но я просто оставил бы соединение открытым, пока не закончу обработку всех файлов.
Я читал о пулах соединений в другом месте, но я не могу понять, применимо ли оно в моей ситуации. Я знаю, что дорого его часто открывать и закрывать, но не могу ли я просто открыть его один раз и запустить все мои запросы в этом соединении?
Если вы рекомендуете использовать пул соединений, какую службу вы бы порекомендовали для моей ситуации. Предпочтительно быстро получить ручку. Мой проект несколько чувствителен к времени. Благодарю.
Взгляните на [c3p0] (http://www.mchange.com/projects/c3p0/). – dasblinkenlight
Как долго это приложение должно работать? 1 минута? 15 минут? 1 час? Сколько пользователей будет использовать его одновременно? Только 1? Или несколько? MySQL по умолчанию восстанавливает соединение, когда он был открыт в течение 8 часов, поэтому, если ваше приложение работает более 8 часов, оно сломается, если вы оставите одно соединение открытым долго. Пулы соединений особенно полезны для приложений с продолжительным сроком службы, которые используются несколькими параллельными пользователями, такими как веб-приложения Java EE. – BalusC
Он, надеюсь, займет около 15 минут или меньше. Это будет зависеть в основном от количества файлов, которые мне нужно обработать. Только один будет использовать его одновременно. Из того, что вы сказали, это звучит так, как будто я могу быть в порядке, просто открывая соединение, обрабатывая данные, вставляя их, а затем закрывая соединение. Это верно? – Mike