为了在tomcat中配置sql server 2000数据库连接池,在google里查了好多次,都不得其解。经过一次次的磨难,终于成功了,以下是我的总结,如果不对请指正。希望能对其他新手有帮助。
开始用的是tomcat 4.1.3,老失败。实在没招了,就换成tomcat 5.5.4了。
先是按《优快云开发高手》上的一篇文章依葫芦画瓢,没想到却报错:
javax.naming.NameNotFoundException: Name jdbc is not bound in this Context
在网上查啊,好象是要在web.xml中增加:
<resource-ref>
<description>SqlServer Datasource example</description>
<res-ref-name>jdbc/mydb</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
不过,又报错:
org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
实在是不解啊!后来慢慢摸索,发现在tomcat 5.5.4下可以有以下三种方式:
方式一、全局数据库连接池
1、通过管理界面配置连接池,或者直接在tomcatconfserver.xml的GlobalNamingResources中增加
<Resource name="jdbc/mydb" type="javax.sql.DataSource" password="mypwd" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" maxIdle="2" maxWait="5000" validationQuery="select 1" username="sa" url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb" maxActive="4"/>
2、在tomcatwebappsmyappMETA-INFcontext.xml的Context中增加:
<ResourceLink global="jdbc/mydb" name="jdbc/mydb" type="javax.sql.DataSource"/>
这样就可以了。
方式二、全局数据库连接池
1、同上
2、在tomcatconfcontext.xml的Context中增加:
<ResourceLink global="jdbc/mydb" name="jdbc/mydb" type="javax.sql.DataSource"/>
方式三、局部数据库连接池
只需在tomcatwebappsmyappsMETA-INFcontext.xml的Context中增加:
<Resource name="jdbc/mydb" type="javax.sql.DataSource" password="mypwd" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" maxIdle="2" maxWait="5000" validationQuery="select 1" username="sa" url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb" maxActive="4"/>
以上三种方式在tomcat 5.5.4下都可以。另外,sql server的jdbc driver是从微软网站上下载的sql server jdbc (sp3)。
开始用的是tomcat 4.1.3,老失败。实在没招了,就换成tomcat 5.5.4了。
先是按《优快云开发高手》上的一篇文章依葫芦画瓢,没想到却报错:
javax.naming.NameNotFoundException: Name jdbc is not bound in this Context
在网上查啊,好象是要在web.xml中增加:
<resource-ref>
<description>SqlServer Datasource example</description>
<res-ref-name>jdbc/mydb</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
不过,又报错:
org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
实在是不解啊!后来慢慢摸索,发现在tomcat 5.5.4下可以有以下三种方式:
方式一、全局数据库连接池
1、通过管理界面配置连接池,或者直接在tomcatconfserver.xml的GlobalNamingResources中增加
<Resource name="jdbc/mydb" type="javax.sql.DataSource" password="mypwd" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" maxIdle="2" maxWait="5000" validationQuery="select 1" username="sa" url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb" maxActive="4"/>
2、在tomcatwebappsmyappMETA-INFcontext.xml的Context中增加:
<ResourceLink global="jdbc/mydb" name="jdbc/mydb" type="javax.sql.DataSource"/>
这样就可以了。
方式二、全局数据库连接池
1、同上
2、在tomcatconfcontext.xml的Context中增加:
<ResourceLink global="jdbc/mydb" name="jdbc/mydb" type="javax.sql.DataSource"/>
方式三、局部数据库连接池
只需在tomcatwebappsmyappsMETA-INFcontext.xml的Context中增加:
<Resource name="jdbc/mydb" type="javax.sql.DataSource" password="mypwd" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" maxIdle="2" maxWait="5000" validationQuery="select 1" username="sa" url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb" maxActive="4"/>
以上三种方式在tomcat 5.5.4下都可以。另外,sql server的jdbc driver是从微软网站上下载的sql server jdbc (sp3)。