tomcat 7配置数据库连接池,使用SQL Server2005实现

yeyedeyatou 2011-10-30

昨天看了一些网上的tomcat数据库连接池配置的东西,但是一直没配好,主要原因是网上的文章几乎没有争对tomcat7进行配置的,而且针对SQLSERVER的也不多,今天上午看了官方的文档,花了一上午时间终于配置好了数据库连接池,这里发给大家看看,如果有什么疑问就留言吧。

首先我们需要向项目中导入tomcat-dbcp.jar、servlet-ap.jar和sqlserver的驱动sqljdbc4.jar包到web-inf文件夹下的lib目录。

然后增加context.xml

这里有两种方法,第一种是在tomcat程序目录下面的conf/context.xml里面修改,这里修改之后所有的程序都将都将覆盖数据库连接池,但是这种方法不够灵活。这里我们选择第二种方法在项目的Web-content/meta-inf目录下创建一个context.xml文件,在里面添加如下内容:

<Contextpath="/SYSDEMO"docBase="SYSDEMO"

reloadable="true"crossContext="true">

<Resourcename="jdbc/SYSDEMO"auth="Container"type="javax.sql.DataSource"

maxActive="100"maxIdle="30"maxWait="10000"

username="lenovo"password="lenovo"driverClassname="com.microsoft.sqlserver.jdbc.SQLServerDriver"

url="jdbc:sqlserver://202.115.90.241:1433;DatabaseName=SYSDEMO"/>

</Context>

这里需要修改的是将所有的SYSDEMO改为你自己的使用的数据库的名称

将driverClassName改为你所使用数据库的驱动,这里是SQLSERVER的驱动。

将url改为jdbc链接该数据库的地址,这里是SQLSERVER的地址,

将username、password改为你自己数据库用户名和密码

maxActive="100"maxIdle="30"maxWait="10000"

可以将这三个参数进行修改,

第一个是最大活动的连接数

第二个是最大的未连接数

第三个是最长的等待时间,单位是毫秒

然后再修改项目的webContent/web-inf/web.xml文件

添加如下内容

<description>MySQLTestApp</description>

<resource-ref>

<description>DBConnection</description>

<res-ref-name>jdbc/blog</res-ref-name>

<res-type>javax.sql.DataSource</res-type>

<res-auth>Container</res-auth>

</resource-ref>

这里必须要改的是<res-ref-name>jdbc/SYSDEMO</res-ref-name>

改为jdbc/你自己的数据库

好了然后就可以使用了。

如下是我测试的servlet文件

importjava.io.IOException;

importjava.sql.Connection;

importjava.sql.SQLException;

importjavax.naming.Context;

importjavax.naming.InitialContext;

importjavax.servlet.ServletException;

importjavax.servlet.annotation.WebServlet;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

importjavax.sql.DataSource;

@WebServlet("/TestPool")

publicclassTestPoolextendsHttpServlet{

privatestaticfinallongserialVersionUID=1L;

protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{

try{

ContextinitContext=newInitialContext();

ContextenvContext=(Context)initContext.lookup("java:/comp/env");

DataSourceds=(DataSource)envContext.lookup("jdbc/SYSDEMO");

Connectionconn=ds.getConnection();

System.out.println("成功了。。。。。。。。。。");

}catch(Exceptione){

System.out.println("出错了。。。。。。。。。。。。。。。。。。");

e.printStackTrace();

}

}

}

将DataSourceds=(DataSource)envContext.lookup("jdbc/SYSDEMO");

“jdbc/SYSDEMO”的sysdemo改为你前面使用的数据库的名称即可。

好了。大功告成。

相关推荐

swazerz / 0评论 2020-01-17
shisongsong / 0评论 2017-01-17

Gexrior / 0评论 2011-12-09