本文提供一个详细而易懂的指导,让你快速掌握使用Microsoft SQL Server关系数据库管理系统(RDBMS)和JBoss J2EE 应用服务器套件来开发,发布和运行企业Java应用程序的基本知识。
JBoss是一个业界领先的开放源码的符合标准的J2EE应用服务器套件的名称。该套件包括JBossServer EJB v1.1 Container 和server, JBossMQ JMS 1.0 implemetation, JBossNS JNDI implemetation,JBossCMP advanced O/R mapper和JDBC data object storage implemetation以及JAAS-based JBossSX security frameeork. 所有的JBoss应用程序都是100%纯java应用程序。
Microsoft SQL Server是一个健壮的高性能的和高安全的关系数据库平台。 它是一个运行在Windows 95,98,Me,Nt和2000平台上的Windows应用程序。它也有Windows CE平台下的版本,但我想你不会将该版本和JBoss一起使用吧?
将高性能的开放源码100%Java J2EE应用服务器的JBoss套件和高超新能的Microsoft SQL Server RDBMS组合起来,可以给你提供一个Windows平台下的J2EE开发和发布环境,相比其它Windows平台下的J2EE应用套间和RDBMS方案,该组合性能优异,高回报(ROI),极大减少产品上市时间(RTTM)。
首先,你需要从JBoss网站获取一份JBoss软件。所有JBoss的产品信息以及如何获取JBoss软件的指导可以在JBoss FAQ或在JBoss 站点找到。本文的余下部分包含下列内容:
网管联盟bitsCN@com 1. 安装MS SQL Server的JDBC驱动程序
2. 配置JBoss使用JDBC驱动程序
3. 为CMP指定MS SQL Server数据类型
4. 问题解答
需要注意的是JBoss应用服务器套件和MS SQL Server都在蓬勃发展。它们的版本都在发行,修订,增添新的特性。这意味着 本文的某些信息对于你的JBoss或MS SQL Server过时了。如果你使用最新的JBoss CVS版本或开发版或MS SQL Server beta版时 更容易出现这种情况。
安装JDBC驱动程序
在你能够与JBoss(或所有其它Java应用程序)一起使用Microsoft SQL Server之前,你必须取得并安装JDBC驱动程序。现将一些现有的Microsoft SQL Server JDBC驱动程序列在下面。
---------------------------------------------------------------------------------------------------------------
驱动程序 提供者 JDBC 类型 Availability 版本
---------------------------------------------------------------------------------------------------------------
FreeTDS http://www.freetds.org/ Type 4 免费/开放源码
---------------------------------------------------------------------------------------------------------------
网管bitscn_com
Merant
DataDirect http://www.merant.com/ Type 4 商业
Connect JDBC
---------------------------------------------------------------------------------------------------------------
i-net Opta
JDBC http://www.inetsoftware.de/ Type 4 商业 4.10修订版
---------------------------------------------------------------------------------------------------------------
WebLogic
JDriver for Weblogic Type 4 商业
MS SQL Server
---------------------------------------------------------------------------------------------------------------
Atinav
aveConnect http://www.atinav.com/ Type 4 商业
JDBC
---------------------------------------------------------------------------------------------------------------
Sun JDBC-
ODBC Bridge http://java.sun.com Type 4 免费
---------------------------------------------------------------------------------------------------------------
注
* Sun JDBC-ODBC桥驱动程序和FreeTDS JDBC驱动程序(至少目前2001年4月的版本)不推荐使用于正式的J2EE开发和发布
网管网www_bitscn_com 安装Sun JDBC-ODBC桥驱动程序
Sun JDBC-ODBC桥驱动程序在Java 2 SDK安装过程中自动安装。安装包为sun.jdbc.odbc.对于所有使用JDBC-ODBC桥的应用程序该包都必须在CLASSPATH中。在本教程中假设Sun JDBC-ODBC桥已经正确的安装在你的系统中。
为了使用Sun JDBC-ODBC桥你需要创建一个ODBC数据源来引用MS SQL Server数据库。本教程中假设已经创建了名为 jboss_odbc指向某个MS SQLServer数据库的数据源。
安装FreeTDS驱动程序从http://www.freetds.org下载FreeTDS, 你应该得到了名为freetds_jdbc.snapshot.jar的文件,然后复制到%JBOSS_HOME%/lib/ext目录下。
安装Merant DataDirect Connect JDBC驱动程序
有两种方法, 你可以选择下列方法之一:
1. 运行Merant安装程序,然后将base.jar, util.jar和sqlserver.jar文件添加到CLASSPATH中。这些文件位于%MERANT_HOME/lib目录下。
2. 将base.jar, uitl.jar和sqlserver.jar文件从%MERANT_HOME%/lib目录复制到%JBOSS_HOME%/lib/ext目录,推荐采用这种方法。
安装i-net OPTA 2000JDBCdriver
你可以采用下列方法之一:
1. 运行JBoss时将Opta2000.jar文件加入ClASSPATH。
网管bitscn_com 2. 将文件Opta2000.jar复制到%/JBOSS_HOME%/lib/ext目录。这是推荐的方法。
配置JBoss使用JDBC驱动程序
关于配置JBoss使用你的JDBC驱动程序的指导取决于你使用的JBoss版本,请选择适合你的版本的方法。
配置JBoss 2.4
遵照配置JBoss2.1和2.2的指导,
但是将org.opentools.minerva.jdbc.xa.wrapper.XADataSourceImpl替换为org.jboss.pool.jdbc.xa.wrapper.XADataSourceImpl。
配置JBoss2.1和2.2
告诉JBoss新的JDBC驱动程序在安装好MS SQL Server JDBC驱动程序后,你需要告诉JBoss你要使用该驱动程序。将该驱动程序添加到JBoss启动时加载的JDBC清单中。该清单存放在jboss.jcml文件中。该文件可在%JBOSS_HOME%/conf/<config-name>中找到。对于标准的JBoss发行版本,<config-name>是default而JBoss-Jetty版本则是jetty。该入口应该是一行用逗号分隔开的JDBC驱动程序名列表。
打开文件,找到以下面的mbean标记开始的入口:
<mbean code="org.jboss.jdbc.JdbcProvider" name="DefaultDomain:service=JdbcProvider">驱动程序列表放在名为Drivers的<attribute>子标记中。按如下所示将你的JDBC驱动程序添加到列表中。
网管bitscn_com $ 添加Sun JDBC-ODBC桥驱动程序
<mbean code="org.jboss.jdbc.JdbcProvider" name="DefaultDomain:service=JdbcProvider">
<attribute name="Drivers">
org.hsql.jdbcDriver,org.enhydra.instantdb.jdbc.idbDriver,sun.jdbc.od
bc.JdbcOdbcDriver
</attribute>
</mbean>
$ 添加FreeTDS驱动程序
<mbean code="org.jboss.jdbc.JdbcProvider" name="DefaultDomain:service=JdbcProvider">
<attribute name="Drivers">
org.hsql.jdbcDriver,org.enhydra.instantdb.jdbc.idbDriver,com.interne
tcds.jdbc.tds.Driver
</attribute>
</mbean>
$ 添加Merant DataDirect Connect JDBC驱动程序
<mbean code="org.jboss.jdbc.JdbcProvider" name="DefaultDomain:service=JdbcProvider">
<attribute name="Drivers">
org.hsql.jdbcDriver,org.enhydra.instantdb.jdbc.idbDriver,com.merant
.datadirect.jdbc.sqlserver.SQLServerDriver
</attribute>
</mbean>
$ 添加i-net OPTA 2000 JDBC驱动程序
<mbean code="org.jboss.jdbc.JdbcProvider" name="DefaultDomain:service=JdbcProvider">
网管bitscn_com <attribute name="Drivers">
org.hsql.jdbcDriver,org.enhydra.instantdb.jdbc.idbDriver,com.inet.td
s.TdsDriver
</attribute>
</mbean>
$ 添加WebLogic jDriver for Microsoft SQL Server
<mbean code="org.jboss.jdbc.JdbcProvider" name="DefaultDomain:service=JdbcProvider">
<attribute name="Drivers">
org.hsql.jdbcDriver,org.enhydra.instantdb.jdbc.idbDriver,weblogic.jd
bc.mssqlserver4.Driver
</attribute>
</mbean>
创建DB连接池
到目前为止,你已经告诉JBoss你的驱动程序。现在建立一个你的EJBBean能够连接的连接池。在本教程中,你将创建一个名为SQLServerPool的连接池。要创建连接池,先在jboss.jcml文件中定位
已下列行开始的mbean入口:
<mbean code="org.jboss.jdbc.XADataSourceLoader" name="DefaultDomain:service=XADataSource,name=DefaultDS">
在你刚在定位的mbean项下面加入如下所给的mbean项。注意这些必须加在结束标记</mbean>后面!!!
$ Sun JDBC-ODBC桥驱动程序连接池声明
<mbean code="org.jboss.jdbc.XADataSourceLoader" name="DefaultDomain:service=XADataSource,name=SQLServerPool
网管联盟bitsCN_com ">
<attribute name="DataSourceClass">org.opentools.minerva.jdbc.xa.wrapper.X
ADataSourceImpl</attribute>
<attribute name="PoolName">SQLServerPool</attribute>
<attribute name="URL">jdbc:odbc:jboss_o