博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Tomcat8.5&Mysql8.0配置数据库连接池(DBCP)
阅读量:5371 次
发布时间:2019-06-15

本文共 2163 字,大约阅读时间需要 7 分钟。

DBCP(DataBase connection pool),数据库连接池。是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件。由于建立数据库连接是一个非常耗时耗资源的行为,所以通过连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就行,用完后再放回去。 --

 


开发环境eclipse_photon + Tomcat8.5.32 + mysql8.0

首先需要修改两个配置文件一个是Tomcat的conf/Context.xml,另一个是项目文件下的web.xml创建web项目时生成

Context.xml修改时在eclipse当中修改,否则由eclipse启动tomcat时会还原该文件,在<Context>标签下添加<Resource>标签

WEB-INF/web.xml
${catalina.base}/conf/web.xml

 Resource标签属性

name:连接池名称,一般设定为jdbc/databasename

auth:设定控制权为容器,固定

type:数据类型,固定

maxTotal:最大活动连接数,在之前版本中是maxActive

maxIdle:最大空闲连接数

maxWaitMillis:最大空闲时间,在之前版本中是maxWait

userName:用户名

password:密码

dirverClassName:

MySQL6.0之后Driver(这里跟只跟ConnectionJ相关,ConnectionJ8.0驱动是com.mysql.cj.jdbc.Driver,但是MySQL也可以使用之前版本的ConnectionJ)名改为“com.mysql.cj.jdbc.Driver”,之前是“com.mysql.jdbc.Driver”。需要注意的是这里要在CLASSPATH中指定“mysql-connector-java-8.0.12.jar”文件的位置,否则会报错,提示driverClassName属性不能识别:

  a.mysql-connector-java-8.0.12.jar复制到D:\env\apache-tomcat-8.5.32\lib下

  b.在环境变量中设定CATALINA_HOME为tomcat路径“D:\env\apache-tomcat-8.5.32”;

  c.CLASSPATH中添加%CATALINA_HOME%\lib;

url:

指定数据库连接ip和数据库名称

jdbc:mysql://127.0.0.1:3306/databaseName

对于MySQL5.*及之前版本只需写到此处就行,MySQL6.0及之后版本需要 指定服务器时区属性,设定useSSL属性等,个属性之间用&连接,在xml/html文件中&用&amp;转义表示,应该写成:

jdbc:mysql://127.0.0.1:3306/databaseName?serverTimeZone=GMT%2B8&amp;useSSL=false

若出现字符集问题则需添加下面两个参数:

useUnicode=true

characterEncoding=utf8

 链接仍使用&amp;


修改web.xml文件

web.xml文件由eclipse创建项目时自动生成(需要在最后一步勾选生成web.xml),在web.xml中<web-app>标签内添加

jdbc/myschool
javax.sql.DataSource
Container

 指定资源名,资源类型,资源控制权限

 


通过JNDI(java naming and directory interface)在java类或jsp页面调用连接池中的连接,

<%      	Context context = new InitialContext();			DataSource ds=(DataSource)envContext.lookup("java:comp/env/jdbc/myschool");		Connection conn = ds.getConnection();			Statement sta = conn.createStatement();	String sql = "select * from Grade";	ResultSet rSet = sta.executeQuery(sql);		while(rSet.next()){		out.println(rSet.getString("GradeName")); 			}	%>

 

转载于:https://www.cnblogs.com/annofyf/p/9519552.html

你可能感兴趣的文章
Python环境搭建(安装、验证与卸载)
查看>>
如何辨别一个程序员的水平高低?是靠发量吗?
查看>>
linux的子进程调用exec( )系列函数
查看>>
zju 2744 回文字符 hdu 1544
查看>>
【luogu P2298 Mzc和男家丁的游戏】 题解
查看>>
前端笔记-bom
查看>>
上海淮海中路上苹果旗舰店门口欲砸一台IMAC电脑维权
查看>>
给mysql数据库字段值拼接前缀或后缀。 concat()函数
查看>>
迷宫问题
查看>>
练习10-1 使用递归函数计算1到n之和(10 分
查看>>
Oracle MySQL yaSSL 不明细节缓冲区溢出漏洞2
查看>>
zoj 1232 Adventure of Super Mario
查看>>
组合数学 UVa 11538 Chess Queen
查看>>
Redis常用命令
查看>>
thinkphp如何实现伪静态
查看>>
BZOJ 1925: [Sdoi2010]地精部落( dp )
查看>>
一个控制台程序,模拟机器人对话
查看>>
我的PHP学习之路
查看>>
解决响应式布局下兼容性的问题
查看>>
使用DBCP连接池对连接进行管理
查看>>