由于学习需要,要在JBoss 5.x应用服务器下建立一个数据库连接池,数据库的服务器采用MS SQLSERVER 2005。实际中的配置还是比较简单的。
1、从microsoft的官网下载Sql Server的JDBC并安装,网址为http://www.microsoft.com/downloads/details.aspx?familyid=99B21B65-E98F-4A61-B811-19912601FDC9&displaylang=zh-cn
2、安装后有两个JAR包,分别是sqljdbc.jar和sqljdbc4.jar,前者是sql server 2000的驱动包,后者是sql server 2005和2008的驱动包,所以将sqljdbc4.jar拷贝到%JBOSS_HOME%\server\default\lib下。
3、在%JBOSS_HOME%\server\default\deploy目录下建立mssql-ds.xml文件,对驱动程序和url进行配置,内容为:
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
<jndi-name>MSSQLDS</jndi-name>
<connection-url>jdbc:sqlserver://localhost;DatabaseName=db</connection-url>
<driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
<user-name>username</user-name>
<password>password</password>
<metadata>
<type-mapping>MS SQLSERVER2005</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
这个文件指定这个池的jndi为java:/MSSQLDS,url为jdbc:sqlserver://localhost;DatabaseName=db,端口为默认端口1433.
4、修改配置文件%JBOSS_HOME%\server\default\conf下的standardjbosscmp-jdbc.xml文件
将<defaults>节点下的头两个标签改为
<defaults>
<datasource>java:/MSSQLDS</datasource>
<datasource-mapping>MS SQLSERVER2005</datasource-mapping>
5、修改配置文件%JBOSS_HOME%\server\default\conf下的login-config.xml文件
在<policy>节点下加入一组内容
<application-policy name = "MSSqlDbRealm">
<authentication>
<login-module code = "org.jboss.resource.security.ConfiguredIdentityLoginModule"
flag = "required">
<module-option name ="principal">db</module-option>
<module-option name ="userName">username</module-option>
<module-option name ="password">password</module-option>
<module-option name ="managedConnectionFactoryName"> jboss.jca:service=LocalTxCM,name=MSSQLDS </module-option>
</login-module>
</authentication>
</application-policy>
OK,这样就大功告成,就可以用
Context context=new InitialContext();
DataSource ds = (DataSource) context.lookup("java:/MSSQLDS");
Connection con = ds.getConnection();
这样就通过con获得了连接池中的一个连接了,可以访问数据库。