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前缀。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章