Eclipse中采用数据库连接池访问MySQL

数据库连接池

  • 负责分配、管理和释放数据库连接
  • 允许应用程序重复使用一个现有的数据库连接
  • 释放空闲时间超过最大空闲时间的数据库连接
  • 数据库连接池技术能明显提高对数据库操作的性能

很多WEB服务器例如Tomcat都提供了DataSource连接池的实现。
基于Tomcat以数据库连接池方式访问MySQL,方法如下:

(1) 在Tomcat目录中的【lib】目录下放入数据库驱动jar包
例如:mysql-connector-java-8.0.XX.jar

(2) 在所创建Web工程的源程序目录META-INF下新建context.xml文件
源程序目录根据不同eclipse版本有不同,可能为:WebRoot,WebContent或者src/main/webapp目录
context内容如下:

<Context>
	<Resource name="dbpool"
	type="javax.sql.DataSource" 
	auth="Container"
	driverClassName="com.mysql.cj.jdbc.Driver" 
	url="jdbc:mysql://localhost:3306/数据库名?连接参数" 
	username="XXX"
	password="XXX" 
	maxActive="5" 
	maxIdle="2" 
	maxWait="6000" />
</Context>

其中:

  • maxActive:设置连接池中处于活动状态的数据库连接的最大数目,0表示不受限制
  • maxIdle:设置连接池中处于空闲状态的数据库连接的最大数目,0表示不受限制
  • 数据库连接参数:通常设置为:

?useUnicode=true&amp;characterEncoding=utf8&amp;serverTimezone=GMT%2B8

表示采用utf8字符集,并采用格林威治时区东八区时间,注意其中的“&”已经替换为转义字符!

(3)用TestDBPool.jsp测试

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ page import="java.sql.*" %>
    <%@ page import="javax.naming.*" %>
    <%@ page import="javax.sql.DataSource" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Test DBPool</title>
</head>
<body>
Tomcat访问数据库连接池测试,获取数据源 <br>     
    <% 
        try {      
            Context ctx = new InitialContext();  //初始化查找命名空间
            Context envContext = (Context)ctx.lookup("java:comp/env"); //参数java:/comp/env为固定路径 
            DataSource ds = (DataSource)envContext.lookup("dbpool"); //在context中设定的pool的name值
            Connection conn = ds.getConnection();  
            Statement sta = conn.createStatement();
            ResultSet rs = sta.executeQuery("select 1");
            conn.close();     
            out.println("<span style='color:red;'>JNDI测试成功<span>");     
        } catch (NamingException e) {     
            e.printStackTrace();     
        } catch (SQLException e) {     
            e.printStackTrace();     
        }     
    %>     
</body>
</html>

正确则返回:JNDI测试成功!

成功后,当后续在其他工程需要完成数据库访问时,只需要:
1、将context.xml拷贝到工程目录对应的META_INF下;
2、在jsp文件中采用类似TestDBPool.jsp中的代码,即可完成高效、安全的数据库访问操作。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐