Поддържане на Connection
отворен завинаги е много лоша идея. Той няма безкраен живот, приложението ви може да се срине всеки път, когато DB изтече връзката и я затвори. Най-добрата практика е да придобиете и затворете Connection
, Statement
и ResultSet
внай-краткото възможен обхват за избягване на течове на ресурси и потенциални сривове на приложения, причинени от течовете и изтичането на времето.
Тъй като свързването на DB е скъпа задача, трябва да помислите за използването на пул за връзки, за да подобрите производителността на свързване. Един приличен сървър на приложения/сервлет контейнер обикновено вече предоставя функция за пул за връзки във вид на JNDI DataSource
. Консултирайте се с неговата документация за подробности как да го създадете. В случай на Tomcat например можете да го намерите тук.
Дори когато използвате пул за връзки, все пак трябва да напишете правилен JDBC код:придобиване и затворете всички ресурси във възможно най-кратък обхват. Пулът от връзки на свой ред ще се тревожи за действително затваряне на връзката или просто за освобождаването й обратно в пула за по-нататъшна повторна употреба.
Може да получите още малко прозрения от тази статия как да направите основите на JDBC по правилния начин. Като напълно различна алтернатива, научете EJB и JPA. Той ще абстрахира целия JDBC шаблон за вас в еднолинейни.
Надявам се това да помогне.
Вижте също:
- Безопасно ли е да се използва статичен екземпляр java.sql.Connection в многонишкова система?
- Използвам ли JDBC пул за връзки?
- Как трябва да се свържа с JDBC база данни/източник на данни в приложение, базирано на сървлет?
- Кога е необходимо или удобно да използвате Spring или EJB3 или всички заедно?