开源数据库连接池之Tomcat内置连接池
2016-03-13 21:12
253 查看
本篇介绍几种开源数据库连接池,同时重点讲述如何使用Tomcat服务器内置的数据库连接池。
之前的博客已经重点讲述了使用数据库连接池的好处,即是将多次创建连接转变为一次创建而使用长连接模式。这样能减少数据库创建连接的消耗。正是由于数据库连接池的思想非常重要,所以市面上也有很多开源的数据库连接池供我们使用。主要有以下三个:
DBCP数据库连接池
C3P0 数据库连接池
Tomcat内置的数据库连接池(DBCP)
本篇主要讲述C3P0数据库连接池的使用,关于另外两个数据库连接池的用法请看《开源数据库连接池之DBCP》 、《开源数据库连接池之C3P0》 。如果我们使用这些开源的数据库连接池,我们就可以省略像前一篇博客中自己创建数据库连接池的步骤,这样会省略我们很多事。
Tomcat服务器也内置了一个数据库连接池,当然这个数据库连接池其实也是一个DBCP数据库连接池。为什么?因为Tomcat和DBCP都是Apache公司的产品。
JNDI(Java Naming and Directory Interface),Java命名和目录接口,其对应于J2SE中的javax.naming包。
这个JNDI的作用在于,可以将一个Java对象放在容器(JNDI容器)中,并为存储的这个对象取一个名称,如果某个程序的方法要想获得这个对象,则使用JNDI并通过存储的名称检索即可获得。例如这个JNDI接口定义了Context接口,这是命名服务执行查询的入口,其lookup方法则为检索JNDI容器中的对象。对于Context来说,又代表了一个web应用,后面我们就会知道这两者的羁绊了。
有了数据库驱动后,接下来就是如何配置连接池的参数了,因为是要使用Tomcat服务器,因此这个配置也会和服务器相关。我们先来看看一段简单地配置参数代码:
View Code
在浏览器中查看:
从Tomcat内置的连接池返回给我们的Connection对象来看,确实证实了Tomcat内置的连接池就是DBCP连接池。因此我们是一个WEB工程同时不想用其他的开源连接池的话就可以使用Tomcat的内置数据库连接池了。
之前的博客已经重点讲述了使用数据库连接池的好处,即是将多次创建连接转变为一次创建而使用长连接模式。这样能减少数据库创建连接的消耗。正是由于数据库连接池的思想非常重要,所以市面上也有很多开源的数据库连接池供我们使用。主要有以下三个:
DBCP数据库连接池
C3P0 数据库连接池
Tomcat内置的数据库连接池(DBCP)
本篇主要讲述C3P0数据库连接池的使用,关于另外两个数据库连接池的用法请看《开源数据库连接池之DBCP》 、《开源数据库连接池之C3P0》 。如果我们使用这些开源的数据库连接池,我们就可以省略像前一篇博客中自己创建数据库连接池的步骤,这样会省略我们很多事。
Tomcat服务器也内置了一个数据库连接池,当然这个数据库连接池其实也是一个DBCP数据库连接池。为什么?因为Tomcat和DBCP都是Apache公司的产品。
JNDI技术简单介绍
在学习Tomcat内置的连接池之前,我们先来认识下JNDI技术。JNDI(Java Naming and Directory Interface),Java命名和目录接口,其对应于J2SE中的javax.naming包。
这个JNDI的作用在于,可以将一个Java对象放在容器(JNDI容器)中,并为存储的这个对象取一个名称,如果某个程序的方法要想获得这个对象,则使用JNDI并通过存储的名称检索即可获得。例如这个JNDI接口定义了Context接口,这是命名服务执行查询的入口,其lookup方法则为检索JNDI容器中的对象。对于Context来说,又代表了一个web应用,后面我们就会知道这两者的羁绊了。
Tomcat内置的数据库连接池
使用Tomcat服务器内置的数据库连接池的局限在于,一是这个工程必须是web工程,而不能是一般的Java工程;二是我们必须在服务器启用之前就要将数据库连接池配置好,这就要看情况了,如果我们在启用Tomcat之前没配置数据库连接池的话,那么后面的web应用一般也就不会使用内置的数据库连接池了,毕竟一般服务器不会随便停用。其实要想使用Tomcat内置的数据库连接池,也很简单,就将数据库的驱动jar包(例如mysql-connector-java-5.1.37.jar)放置在Tomcat的【lib】目录下。有了数据库驱动后,接下来就是如何配置连接池的参数了,因为是要使用Tomcat服务器,因此这个配置也会和服务器相关。我们先来看看一段简单地配置参数代码:
public class TestServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Connection conn = null; Statement st = null; ResultSet rs = null; try{ conn = JdbcUtils.getConnection(); response.getWriter().write(conn.toString()); response.getWriter().write("<br>"); response.getWriter().write(conn.getClass().getName()); }catch (Exception e) { throw new RuntimeException(e); } finally{ JdbcUtils.release(conn, st, rs); } } }
View Code
在浏览器中查看:
从Tomcat内置的连接池返回给我们的Connection对象来看,确实证实了Tomcat内置的连接池就是DBCP连接池。因此我们是一个WEB工程同时不想用其他的开源连接池的话就可以使用Tomcat的内置数据库连接池了。
相关文章推荐
- Tomcat下使用Log4j 接管 catalina.out 日志文件生成方式:
- Deploying my application at the root in Tomcat(转自StackOverFlow,做记录)
- 安装GDK
- Ubuntu设置tomcat自启动
- IDEA社区版中maven-tomcat插件配置JNDI数据源
- 一周乱弹2016-3-13(第五个周日,以今年工作开始时间计1,java类在继承2,js 的confirm确认方法3,tomcat 在设置项目的部署路径)
- 解决tomcat端口被占用的问题-用dos命令杀掉占用tomcat端口的进程
- IDEA社区版使用Maven + Tomcat开发Web项目
- Tomcat启动过程详解
- Tomcat启动过程(二):EndPoint解析
- Tomcat:Java Web服务器配置详解
- [安卓笔记]android客户端向tomcat服务器发送请求中文乱码问题解决
- 集成Tomcat插件到Eclipse
- tomcat与nginx区别
- Tomcat启动过程(一):从BootStrap到EndPonit
- Tomcat 6 --- JNDI详解
- Tomcat下的JAAS实例
- Myeclipse中启动tomcat 端口被占用问题
- Linux下jvm与tomcat的安全与优化
- IT忍者神龟之在Tomcat配置JNDI数据源的三种方式