將與你的數據庫類型匹配的數據源文件複製一份到$JBOSS_HOMEserver\default\deploy目錄下,然後修改裏面的相關參數就可以了。例如:
<?xml version="1.0" encoding="UTF-8"?>
<!-- ===================================================================== -->
<!-- -->
<!-- JBoss Server Configuration -->
<!-- -->
<!-- ===================================================================== -->
<!-- $Id: mssql-ds.xml,v 1.3 2004/09/15 14:37:40 loubyansky Exp $ -->
<!-- ======================================================================-->
<!-- New ConnectionManager setup for Microsoft SQL Server 2000 driver -->
<!-- You may download the latest Microsoft JDBC driver from *Microsoft* -->
<!-- http://msdn.microsoft.com/downloads/default.asp?url=/downloads/sample.asp?url=/MSDN-FILES/027/001/779/msdncompositedoc.xml&frame=true -->
<!-- ===================================================================== -->
<datasources>
<local-tx-datasource>
<jndi-name>MSSQLDS</jndi-name>
<connection-url>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=MyDatabase</connection-url>
<driver-class>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver-class>
<user-name>x</user-name>
<password>y</password>
<!-- sql to call when connection is created
<new-connection-sql>some arbitrary sql</new-connection-sql>
-->
<!-- sql to call on an existing pooled connection when it is obtained from pool
<check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
-->
<!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
<metadata>
<type-mapping>MS SQLSERVER2000</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
修改其中的jndi-name,connection-url,user-name和password幾個屬性的值就夠了。
配置好數據源,啓動jboss之後,就可以編程使用數據源了。這裏的配置是將數據源放到了Jboss的JDNI命名服務中,所以你需要從JBOSS的JNDI中獲取數據源。如果你使用的是JBOSS,那獲得數據源就非常方便的,因爲Spring提供了一個JNDI Factory Bean。
配置如下:
<bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate"/>
<bean id="datasource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:MSSQLDS</value>
</property>
<property name="jndiTemplate">
<ref local="jndiTemplate"/>
</property>
</bean>
如果沒有使用Spring,那你就得自己使用JNDI API來獲得數據源了。還有一點,因爲javax.sql.Datasource這個類是不可序列化的,所以你是沒有辦法拿到遠程數據源的,只能在Jboss內部進行測試。
另外,在數據源配置文件中使用<use-java-context>false</use-java-context>這個屬性,可以在使用JNDI的時候不適用Java前綴。