Как управлять подключением к базе данных?

Я должен управлять соединением с базой данных из моего веб-приложения (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.

Другие вопросы по тегам