配置Tomcat服务器数据连接池

优势:由于HTTP协议的web程序是无状态的,在应用程序使用JDBC时,多次请求处理客户端都会重新建立连接,如果请求繁忙,将会消耗非常多的资源。

   数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是重新建立。

  配置全局数据库连接池:

  配置局部数据库连接池:

在Tomcat安装目录下, conf\server.xml中

  <GlobalNamingResources>标签下

添加

 <Resource name="jdbc/webdb"
             auth="Container"
	     type="javax.sql.DataSource"
             driverClassName="com.mysql.jdbc.Driver"
             url="jdbc:mysql://localhost:3306/shop?characterEncoding=utf-8"
             username="root"
             password="root"
             maxActive="200"
             maxIdle="50"
             maxWait="3000"
   />

在conf\Catalina\localhost

创建以web命名的xml

<?xml version=‘1.0‘ encoding=‘utf-8‘?>
<Context path ="/webdemo" docBase="webdemo" debug="0">
		<ResourceLink name="jdbc/webdb" global="jdbc/webdb"
type="javax.sql.DataSource"/>	

</Context>

创建Servlet

package com.demo.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;

public class HelloWorldServlet extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException{
		//设置HTTP响应头的ContentType字段值
		response.setContentType("text/html; charset=UTF-8");

		//获取用于输入输出消息的PrintWriter对象
		PrintWriter out = response.getWriter();

		try {
			//或得Context对象
			Context context = new InitialContext();
			DataSource ds = (DataSource) context.lookup("java:/comp/env/jdbc/webdb");
			//获得Connetion对象
			Connection connection = ds.getConnection();
			PreparedStatement statement = connection.prepareStatement("select * from memberlevel");

			ResultSet rs = statement.executeQuery();
			StringBuffer table = new StringBuffer();
			table.append("<table border=‘1‘>");
			table.append("<tr><td>ID</td><td>级别</td><td>积分</td></tr>");
			while(rs.next()){

				table.append("<tr><td>"+rs.getString("ID")+"</td><td>"+rs.getString("LevelName")+"</td><td>"+rs.getString("Favourable")+"</td></tr>");

			}
			table.append("</table>");

			out.println(table.toString());
		} catch (Exception e) {
			out.println(e.getMessage());
		}

	}
}

在lib中加入mysql的jar包

web.xml配置

之后请求

http://localhost:8080/webdemo/servlet/HelloWorldServlet

结果:

配置局部数据库连接池将web命名的xml中内容替换即可

<Context path ="/webdemo" docBase="webdemo" debug="0">。。。。。。配置
</Context>
时间: 2024-08-03 23:32:10

配置Tomcat服务器数据连接池的相关文章

配置tomcat全局c3p0连接池

由于项目中多个应用访问同一个数据库,并部署在同一个tomcat下面,所以没必要每个应用都配置连接池信息,这样可能导致数据库的资源分布不均,所以这种情况完全可以配置一个tomcat的全局连接池,所涉及应用均访问该连接池,让数据库资源得以充分利用. 本人使用了c3p0连接池,对c3p0虽然没做过相关性能测试,但是网评还不错,使用的是0.9.1版本,tomcat 使用 7.0.32 配置分为几个步骤: 一.在tomcat的server.xml中配置数据源 找到GlobalNamingResources

数据连接池JNDI

数据库连接有很多中方式,JDBC数据库的连接方式,前边我们已经介绍过了,而开发中我们经常使用的是DataBaseConnectionPool(数据库连接池,DBCP).数据库连接池到底是什么?它比jdbc数据库连接有什么优势呢?它又怎么使用呢? 一,先看一下JDBC连接,每次用户访问数据库时,需要JDBC为我们创建数据库连接,我们使用,然后关闭.而当我们加断点测试,可以发现这个过程中创建数据库连接这个过程是比较费时间的,而不是我们在数据库中操作数据费时间.所以JDBC这种方式的效率大大折扣.而且

数据连接池——JNDI

数据库连接有很多中方式,JDBC数据库的连接方式,前边我们已经介绍过了,而开发中我们经常使用的是DataBaseConnectionPool(数据库连接池,DBCP).数据库连接池到底是什么?它比jdbc数据库连接有什么优势呢?它又怎么使用呢? 一,先看一下JDBC连接,每次用户访问数据库时,需要JDBC为我们创建数据库连接,我们使用,然后关闭.而当我们加断点测试,可以发现这个过程中创建数据库连接这个过程是比较费时间的,而不是我们在数据库中操作数据费时间.所以JDBC这种方式的效率大大折扣.而且

数据连接池的使用

相比传统的数据连接而言,每次使用Connection 连接数据库时(增删查改)每次都会调用new一个连接对象,去访问数据库,而Connection对象的每次使用,在调用close()方法时,这时候的connection 它只是处于一种关闭的状态,实际而言,他还是存在与内存当中的,这样当我们的业务需求量大大增加时,这样会很耗费我们客户端的内存资源. 而数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,这些数据库连接的数量是由最小数据库连接数制约.无论这些数据库连接是否被使用,连接池都将

Netbeans 中创建数据连接池和数据源步骤

1.启动glassfish服务器, 在浏览器的地址栏中输入 http://localhost:4848 2.首先建立JDBC Connection Pools: 3.new 一个Connectio Pools 4.对General Settings属性填写: 5.填写Datasource Classname:com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource Ping属性选中,可以用来检验数据连接池是否创建成功! . 6.对Ad

记录一个简单的dbcp数据连接池

这个示例用到了ThreadLocal与dbcp,我觉得有点意思,就整理了下.使用dbcp,肯定要导入commons-dbcp.jar包.下面直接贴DBUtil代码: public class DBUtil { private static DataSource ds; //定义一个数据连接池 //threadLocal是线程的局部变量,它的实例通常是类中的 private static 字段 private static ThreadLocal<Connection> connLocal=ne

如何在Eclipse中配置Tomcat服务器

之前使用MyEclipse来开发Web应用,可以在MyEclipse中配置服务器,配置完后,直接运行服务器即可,很方便. 最近切换到Eclipse开发环境,发现使用Tomcat的方式不太一样,因此在此稍作记录. 在Eclipse中使用Tomcat运行Web应用,主要有两种模式: 1.默认方式:   在标准的web系统右键,选择Run on Server 选择Tomcat服务器,如何没有,可以点击Add新增服务器. 直接点击[Finish]按钮,就可以正常运行你的Web应用了. 2.改进方案:将应

Hibernate_14_数据连接池的使用

在主配置文件Hibernate.cfg.xml中设置: <!-- 设置默认的事务隔离级别: 隔离级别 对应的整数表示 READ UNCOMMITED 1 READ COMMITED 2 REPEATABLE READ 4 SERIALIZEABLE 8 --> <property name="connection.isolation">2</property> <!-- C3P0连接池设定--> <!-- 使用c3p0连接池 配置连

SpringBoot整合Druid数据连接池

SpringBoot整合Druid数据连接池 Druid是什么? Druid是Alibaba开源的的数据库连接池.Druid能够提供强大的监控和扩展功能. 在哪里下载druid maven中央仓库: http://central.maven.org/maven2/com/alibaba/druid/ 怎么获取Druid的源码 Druid是一个开源项目,源码托管在github上,源代码仓库地址是 https://github.com/alibaba/druid.同时每次Druid发布正式版本和快照