惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Jina AI
Jina AI
T
The Blog of Author Tim Ferriss
B
Blog
L
LangChain Blog
Y
Y Combinator Blog
美团技术团队
博客园 - 三生石上(FineUI控件)
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
G
Google Developers Blog
量子位
博客园_首页
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
C
Check Point Blog
D
Docker
小众软件
小众软件
The Cloudflare Blog
大猫的无限游戏
大猫的无限游戏
T
Tailwind CSS Blog
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 聂微东
Blog — PlanetScale
Blog — PlanetScale
GbyAI
GbyAI
Google DeepMind News
Google DeepMind News
IT之家
IT之家

博客园 - 淡无心

Git 常用操作命令手册 Idea快捷键 Java_core复习 gitblit重置管理员密码【gitblit】 使用命令创建git仓库 Windows平台下搭建自己的Git服务器【gitblit】 python笔记 代码整洁之道 Vue学习02 Vue学习01 linux 服务器挂在目录 java内部编码 用base64Encoder进行编码 和base64Decoder解码 序列化和反序列化 HttpServletResponse类 SVN修改地址 Linux初始root密码设置 plsql的使用,本地只装一个客户端。 [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]
配置Tomcat服务器数据连接池
淡无心 · 2016-06-07 · via 博客园 - 淡无心

优势:由于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>