Jboss是數據源配置

配置Jboss的數據源非常簡單,可以從$JBOSS_HOME\docs\examples\jca這個目錄下面找到jboss對各種數據庫提供的數據源配置文件。拿MS SQLServer來說,就有兩個,一個是mssql-ds.xml,一個是mssql-xa-ds.xml。後一個文件時用來配置兩階段提交數據源的,一般來說我們只使用第一個配置文件就可以了。
將與你的數據庫類型匹配的數據源文件複製一份到$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前綴。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章