tomcat 7配置数据库连接池,使用SQL Server2005实现
昨 天看了一些网上的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文件,在里面添加如下内容:
<Context path="/SYSDEMO" docBase="SYSDEMO"
reloadable="true" crossContext="true">
<Resource name="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改为你所使用数据库的驱动,这里是SQL SERVER的驱动。
将url改为jdbc链接该数据库的地址,这里是SQL SERVER的地址,
将username 、password改为你自己数据库用户名和密码
maxActive="100" maxIdle="30" maxWait="10000"
可以将这三个参数进行修改,
第一个是最大活动的连接数
第二个是最大的未连接数
第三个是最长的等待时间,单位是毫秒
然后再修改项目的webContent/web-inf/web.xml文件
添加如下内容
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/SYSDEMO</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文件
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改为你前面使用的数据库的名称即可。
好了。大功告成。
首先我们需要向项目中导入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文件,在里面添加如下内容:
<Context path="/SYSDEMO" docBase="SYSDEMO"
reloadable="true" crossContext="true">
<Resource name="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改为你所使用数据库的驱动,这里是SQL SERVER的驱动。
将url改为jdbc链接该数据库的地址,这里是SQL SERVER的地址,
将username 、password改为你自己数据库用户名和密码
maxActive="100" maxIdle="30" maxWait="10000"
可以将这三个参数进行修改,
第一个是最大活动的连接数
第二个是最大的未连接数
第三个是最长的等待时间,单位是毫秒
然后再修改项目的webContent/web-inf/web.xml文件
添加如下内容
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/SYSDEMO</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文件
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改为你前面使用的数据库的名称即可。
好了。大功告成。
分类:
JAVA
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
2012-06-28 android 日期选择器(DatePicker)学习与应用
2012-06-28 常用的android弹出对话框
2012-06-28 PHP5.2.3连接 SQLSERVER 注意事项
2012-06-28 PHP连接 SQLSERVER 注意事项(经典中的经典)
2011-06-28 jQuery语法:$(选择器,[待查文档])
2011-06-28 Window frames[]集合(转)
2011-06-28 js 处理 ie和firefox window.frames 兼容问题(转)