下面是SqlServer2005和2000的JDBC文档中提供的有关信息:
[b]Sql Server 2005[/b]
类库:sqljdbc.jar
连接:
Class.forName("[color=brown]com.microsoft.sqlserver.jdbc.SQLServerDriver[/color]");
Connection con = DriverManager.getConnection("[color=brown]jdbc:sqlserver[/color]://localhost;user=MyUserName;password=*****");
连接到本地计算机上的默认数据库:
jdbc:sqlserver://localhost;user=MyUserName;password=*****
连接到远程服务器上的指定数据库:
jdbc:sqlserver://localhost;databaseName=AdventureWorks;user=MyUserName;password=*****
连接到远程服务器上的非默认端口 4000:
jdbc:sqlserver://localhost:4000;databaseName=AdventureWorks;user=MyUserName;password=*****
通过指定自定义应用程序名称进行连接:
jdbc:sqlserver://localhost;databaseName=AdventureWorks;user=MyUserName;password=*****;applicationName=MyApp
[b]Sql Server 2000[/b]
类库:
install_dir/lib/msbase.jar
install_dir/lib/msutil.jar
install_dir/lib/mssqlserver.jar
连接:
Class.forName("[color=brown]com.microsoft.jdbc.sqlserver.SQLServerDriver[/color]");
[color=brown]jdbc:microsoft:sqlserver[/color]://server_name:1433
jdbc:microsoft:sqlserver://server1:1433;user=test;password=secret
jdbc:microsoft:sqlserver://server1:1433;user=sa;password=secret;DatabaseName=pubs;
请注意类名和连接字符串的区别。
再看看JBoss5提供的jboss-5.0.0.GA\docs\examples\jca\mssql-ds.xml:
<datasources>
<local-tx-datasource>
<jndi-name>MSSQLDS</jndi-name>
<connection-url>[color=blue]jdbc:microsoft:sqlserver[/color]://localhost:1433;DatabaseName=MyDatabase</connection-url>
<driver-class>[color=blue]com.microsoft.sqlserver.jdbc.SQLServerDriver[/color]</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>
其中的类名和连接串刚好是交叉使用的,所以问题会很严重。有用到的朋友请参照上述的修改。
我修改后的是这样子:
<datasources>
<local-tx-datasource>
<jndi-name>MSSQLDS</jndi-name>
<connection-url>jdbc:sqlserver://localhost:1433;databaseName=test</connection-url>
<driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
<user-name>sa</user-name>
<password>sa</password>
<min-pool-size>5</min-pool-size>
<max-pool-size>20</max-pool-size>
<idle-timeout-minutes>0</idle-timeout-minutes>
<track-statements/>
<security-domain>MSSQLDbRealm</security-domain>
<metadata>
<type-mapping>MS SQLSERVER2000</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
另外要注意的是拷贝相应的类库到 server\default\lib 目录下。
[b]Sql Server 2005[/b]
类库:sqljdbc.jar
连接:
Class.forName("[color=brown]com.microsoft.sqlserver.jdbc.SQLServerDriver[/color]");
Connection con = DriverManager.getConnection("[color=brown]jdbc:sqlserver[/color]://localhost;user=MyUserName;password=*****");
连接到本地计算机上的默认数据库:
jdbc:sqlserver://localhost;user=MyUserName;password=*****
连接到远程服务器上的指定数据库:
jdbc:sqlserver://localhost;databaseName=AdventureWorks;user=MyUserName;password=*****
连接到远程服务器上的非默认端口 4000:
jdbc:sqlserver://localhost:4000;databaseName=AdventureWorks;user=MyUserName;password=*****
通过指定自定义应用程序名称进行连接:
jdbc:sqlserver://localhost;databaseName=AdventureWorks;user=MyUserName;password=*****;applicationName=MyApp
[b]Sql Server 2000[/b]
类库:
install_dir/lib/msbase.jar
install_dir/lib/msutil.jar
install_dir/lib/mssqlserver.jar
连接:
Class.forName("[color=brown]com.microsoft.jdbc.sqlserver.SQLServerDriver[/color]");
[color=brown]jdbc:microsoft:sqlserver[/color]://server_name:1433
jdbc:microsoft:sqlserver://server1:1433;user=test;password=secret
jdbc:microsoft:sqlserver://server1:1433;user=sa;password=secret;DatabaseName=pubs;
请注意类名和连接字符串的区别。
再看看JBoss5提供的jboss-5.0.0.GA\docs\examples\jca\mssql-ds.xml:
<datasources>
<local-tx-datasource>
<jndi-name>MSSQLDS</jndi-name>
<connection-url>[color=blue]jdbc:microsoft:sqlserver[/color]://localhost:1433;DatabaseName=MyDatabase</connection-url>
<driver-class>[color=blue]com.microsoft.sqlserver.jdbc.SQLServerDriver[/color]</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>
其中的类名和连接串刚好是交叉使用的,所以问题会很严重。有用到的朋友请参照上述的修改。
我修改后的是这样子:
<datasources>
<local-tx-datasource>
<jndi-name>MSSQLDS</jndi-name>
<connection-url>jdbc:sqlserver://localhost:1433;databaseName=test</connection-url>
<driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
<user-name>sa</user-name>
<password>sa</password>
<min-pool-size>5</min-pool-size>
<max-pool-size>20</max-pool-size>
<idle-timeout-minutes>0</idle-timeout-minutes>
<track-statements/>
<security-domain>MSSQLDbRealm</security-domain>
<metadata>
<type-mapping>MS SQLSERVER2000</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
另外要注意的是拷贝相应的类库到 server\default\lib 目录下。