База данных Apache James 3 Источник данных

Как настроить тег DataSource в Spring-Server.xml? Я пытался настроить его, но на самом деле я не нашел никакой полезной ссылки на это: я писал это так:

 <data-source class="org.apache.james.util.dbcp.JdbcDataSource" name="JamesDS">
 <driver>oracle.jdbc.driver.OracleDriver</driver>
 <dburl>jdbc:oracle:thin:@localhost:1522:test</dburl>
 <user>James</user>
 <password>123456</password>
 </data-source>

person primeFaceUser    schedule 21.08.2013    source источник


Ответы (1)


Вы должны настроить dataSource как bean-компонент, каждая строка, которую вы написали внутри, должна быть определена как property. Пример:

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://localhost:3306/myschema" />
    <property name="username" value="root" />
    <property name="password" value="password" />
</bean>

Как видно из примера, вы можете использовать разные драйвера - в зависимости от БД, к которой вы подключаетесь.

Другой пример:

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://localhost:3306/myschema" />
    <property name="username" value="root" />
    <property name="password" value="password" />
</bean>

ВАЖНО:
из Документы Spring о DriverManagerDataSource:

Этот класс не является фактическим пулом соединений; на самом деле он не объединяет соединения. Он просто служит простой заменой полномасштабного пула соединений, реализуя тот же стандартный интерфейс, но создавая новые соединения при каждом вызове.

Если вам нужен «настоящий» пул соединений за пределами контейнера J2EE, рассмотрите Apache Jakarta Commons DBCP или C3P0. Commons DBCP BasicDataSource и ComboPooledDataSource C3P0 — это полноценные компоненты пула соединений, поддерживающие те же основные свойства, что и этот класс, плюс специальные настройки (такие как минимальный/максимальный размер пула и т. д.).

Я рекомендую прочитать следующее хорошее введение в JDBC

person Nir Alfasi    schedule 21.08.2013
comment
Спасибо за ваш ответ! но я все еще сталкиваюсь с некоторыми проблемами при попытке запустить сервер (работает run.bat). Выдается исключение java.lang.IllegalStateException: невозможно преобразовать значение типа [java.lang.String] в требуемый тип [org.springframework. orm.jpa.vendor.Database] для свойства «база данных». Это исключение выдается, потому что я написал в Spring-server.xml: ‹property name=dataBase value=Oracle›‹/property› под id=vendorAdapter Что вы делаете посоветуйте мне сделать, чтобы решить эту ошибку - person primeFaceUser; 21.08.2013
comment
Перезапуск сервера (обычно) не имеет ничего общего с подключением к БД. Вы должны иметь возможность перезапустить сервер и не выполнить запрос к вашему приложению, требующему подключения к БД. - person Nir Alfasi; 21.08.2013
comment
Перед редактированием конфигурации источника данных сервер запускается нормально без каких-либо исключений, но когда я его настроил, я уверен, что у меня есть некоторые ошибки в конфигурации, не могли бы вы дать мне полный образец a\касающийся только блока источника данных... Заранее большое вам спасибо!! - person primeFaceUser; 21.08.2013
comment
@primeFaceUser Я разместил два примера с использованием разных драйверов. - person Nir Alfasi; 21.08.2013