Как управлять подключением к базе данных?
Я должен управлять соединением с базой данных из моего веб-приложения (Tomcatserver/frameworkJSF), от соединения со своей страницы входа до разъединения. Я обнаружил, что должен позволить контейнеру управлять подключением / отключением к базе данных, но пример, который я нашел, показывает, как настроить сервер Tomcat (http://christophej.developpez.com/tutoriel/j2ee/pooltomcat/)и использовать соединение из сервлета, но я хочу использовать соединение из моих бинов. Как я могу создать соединение в моем классе каждый раз без создания нового соединения?
1 ответ
Вы создаете источник данных в Tomcat или где-то еще, который является пулом соединений. Вы берете соединение из этого пула, а затем освобождаете его, когда закончите. Пример Tomcat (в context.xml):
<Resource auth="Container" driverClassName="com.mysql.jdbc.Driver"
maxActive="100" maxIdle="30" maxWait="10000" name="jdbc/yourname"
password="..." type="javax.sql.DataSource"
url="jdbc:mysql://localhost:3306/mydb?characterEncoding=utf8"
username="..."/>
Это создает пул с именем JNDI 'jdbc/yourname'. Вы можете получить это из Spring следующим образом:
<jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/jdbc/yourname" />
Это создаст объект DataSource, который вы можете вставить в свой Java-код по мере необходимости.
Или в Интернете есть множество примеров поиска JNDI, которые делают это программно, а не декларативно.
Есть также множество реализаций пула, таких как c3po.