Tomcat8.5&Mysql8.0配置数据库连接池(DBCP)

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>标签

1<Context> 2 3 <!-- Default set of monitored resources. If one of these changes, the --> 4 <!-- web application will be reloaded. --> 5 <WatchedResource>WEB-INF/web.xml</WatchedResource> 6 <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource> 7 <Resource name = "jdbc/myschool" auth="Container" type="javax.sql.DataSource" 8 maxTotal="100" maxIdle="30" maxWaitMillis="10000" username="root" password="111111" 9 driverClassName="com.mysql.cj.jdbc.Driver" 10 url="jdbc:mysql://127.0.0.1:3306/myschool?serverTimezone=GMT%2B8&amp;useSSL=false" /> 11 <!-- Uncomment this to disable session persistence across Tomcat restarts --> 12 <!-- 13 <Manager pathname="" /> 14 --> 15</Context>

 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文件中&用&转义表示,应该写成:

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

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

useUnicode=true

characterEncoding=utf8

 链接仍使用&


修改web.xml文件

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

1<resource-ref> 2 <res-ref-name>jdbc/myschool</res-ref-name> 3 <res-type>javax.sql.DataSource</res-type> 4 <res-auth>Container</res-auth> 5 </resource-ref>

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


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

1<%     2 Context context = new InitialContext(); 3 4 DataSource ds=(DataSource)envContext.lookup("java:comp/env/jdbc/myschool"); 5 6 Connection conn = ds.getConnection(); 7 8 9 Statement sta = conn.createStatement(); 10 String sql = "select * from Grade"; 11 ResultSet rSet = sta.executeQuery(sql); 12 13 while(rSet.next()){ 14 out.println(rSet.getString("GradeName")); 15 } 16 %>
点赞
收藏

评论区

加载中...

相关推荐

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

Spring Boot + Spring Cloud 实现权限管理系统 后端篇(七):集成 Druid 数据源

数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。通过数据库连接池能明显提高对数据库操作的性能。在Java应用程序开发中,常用的连接池有DBCP、C3P0、Proxool等。SpringBoot默认提供

Druid连接池简单入门配置

偶尔的机会解释Druid连接池,后起之秀,但是评价不错,另外由于是阿里淘宝使用过的所以还是蛮看好的。Druid集连接池,监控于一体整好复合当前项目的需要,项目是ssh结构,之前是用C3p0的,现在换一个连接池也是很简单的,首先spring配置DataSource,配置如下:<bean id"dataSource" class"co

MYSQL进阶学习笔记十四:MySQL 应用程序优化!(视频序号:进阶_32)

知识点十五:MySQL 的应用程序优化(32)一、访问数据库采用连接池把连接当做对象或设备,统一放在‘连接池’里。凡是需要访问数据库的地方都从连接池里取连接二、采用缓存减少对于MySQL的访问:         

Spring Boot:集成Druid数据源

综合概述数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。通过数据库连接池能明显提高对数据库操作的性能。在Java应用程序开发中,常用的连接池有DBCP、C3P0、Proxool等。Spri

JDBC连接池 JDBCTemplate

1.数据库连接池2.SpringJDBC:JDBCTemplate数据库连接池1.概念:其实就是一个容器(集合),存放数据库连接的容器。当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对