mirror of
https://github.com/wahyd4/wahyd4.github.com.git
synced 2026-08-10 13:56:24 +10:00
- 308 posts reverse-extracted from wahyd4.github.com (Hexo 6.3.0 + NexT 8.25) - Hexo project with NexT theme, reading-experience custom styles - publish-post.sh: write post -> hexo build -> PR (master untouched)
95 lines
3.2 KiB
Markdown
95 lines
3.2 KiB
Markdown
---
|
||
title: "tomcat 7配置数据库连接池,使用SQL Server2005实现"
|
||
date: 2011-07-06 00:00:00
|
||
tags: [java, servlet, 连接池]
|
||
---
|
||
|
||
> 昨天看了一些网上的tomcat数据库连接池配置的东西,但是一直没配好,主要原因是网上的文章几乎没有争对tomcat 7进行配置的,而且针对SQL SERVER的也不多,今天上午看了官方的文档,花了一上午时间终于配置好了数据库连接池,这里发给大家看看,如果有什么疑问就留言吧。
|
||
|
||
首先我们需要向项目中导入tomcat-dbcp.jar 、servlet-ap.jar和sql server的驱动sqljdbc4.jar 包到 web-inf 文件夹下的lib目录 。
|
||
|
||
然后增加context.xml
|
||
|
||
这里有两种方法,第一种是在tomcat程序目录下面的conf/context.xml里面修改,这里修改之后所有的程序都将都将覆盖数据库连接池,但是这种方法不够灵活。这里我们选择第二种方法 在项目的Web-content/meta-inf 目录下创建一个context.xml文件,在里面添加如下内容:
|
||
|
||
```xml
|
||
|
||
```
|
||
|
||
这里需要修改的是 将所有的SYSDEMO改为你自己的使用的数据库的名称
|
||
|
||
将driverClassName改为你所使用数据库的驱动,这里是SQL SERVER的驱动。
|
||
|
||
将url改为jdbc链接该数据库的地址,这里是SQL SERVER的地址,
|
||
|
||
将username 、password改为你自己数据库用户名和密码
|
||
|
||
maxActive=”100″ maxIdle=”30″ maxWait=”10000″
|
||
|
||
可以将这三个参数进行修改,
|
||
|
||
第一个是最大活动的连接数
|
||
|
||
第二个是最大的未连接数
|
||
|
||
第三个是最长的等待时间,单位是毫秒
|
||
|
||
然后再修改项目的webContent/web-inf/web.xml文件
|
||
|
||
添加如下内容:
|
||
|
||
```xml
|
||
MySQL Test App
|
||
|
||
DB Connection
|
||
jdbc/blog
|
||
javax.sql.DataSource
|
||
Container
|
||
|
||
```
|
||
|
||
这里必须要改的是: jdbc/SYSDEMO
|
||
|
||
改为 jdbc/你自己的数据库
|
||
|
||
好了然后就可以使用了。
|
||
|
||
如下是我测试的servlet文件
|
||
|
||
```java
|
||
import java.io.IOException;
|
||
import java.sql.Connection;
|
||
import java.sql.SQLException;
|
||
import javax.naming.Context;
|
||
import javax.naming.InitialContext;
|
||
import javax.servlet.ServletException;
|
||
import javax.servlet.annotation.WebServlet;
|
||
import javax.servlet.http.HttpServlet;
|
||
import javax.servlet.http.HttpServletRequest;
|
||
import javax.servlet.http.HttpServletResponse;
|
||
import javax.sql.DataSource;
|
||
@WebServlet("/TestPool")
|
||
public class TestPool extends HttpServlet {
|
||
private static final long serialVersionUID = 1L;
|
||
|
||
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
||
try{
|
||
Context initContext = new InitialContext();
|
||
Context envContext = (Context)initContext.lookup("java:/comp/env");
|
||
DataSource ds = (DataSource)envContext.lookup("jdbc/SYSDEMO");
|
||
Connection conn = ds.getConnection();
|
||
System.out.println("成功了。。。。。。。。。。");
|
||
}catch(Exception e){
|
||
System.out.println("出错了。。。。。。。。。。。。。。。。。。");
|
||
e.printStackTrace();
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
将 DataSource ds = (DataSource)envContext.lookup(“jdbc/SYSDEMO”);
|
||
|
||
“jdbc/SYSDEMO” 的sysdemo改为你前面使用的数据库的名称即可。
|
||
|
||
好了。大功告成。
|