博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据连接池(数据源)的配置方法
阅读量:2048 次
发布时间:2019-04-28

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

08120170920
081201709201、为什么需要连接池?因为打开和关闭Connection需要耗费时间和内存开销2、连接池常见种类:  1)、dbcp(tomcat容器内部支持,tomcat-dbcp.jar已经存在,不需要手工导入)  2)、druid(阿里)[需要导入druid-1.1.3.jar包]  3)、cp30(开源)3、配置连接池的主要参数:[具体见context.xml文件]  1)、最小连接数[数据库一直保持的Connection对象数目]  2)、初始化连接数[创建连接池时,预先初始化的Connection对象数目]  3)、最大连接数[连接池能容纳的最大Connection对象数目,超过则放在等待队列中,连接池的并发量]  4)、最大等待时间[当内有可用连接,连接等待的最大时间]  5)、最大空闲连接数[连接池内空闲的最大Connection对象数目](针对dbcp数据源)                   WEB-INF/web.xml                 ${catalina.base}/conf/web.xml     	    	    		    		    		   package com.tiger.datasource;import java.sql.*;import javax.naming.*;import javax.sql.DataSource;/** * tomcat自带支持dbcp数据连接池 * @author tiger * @time 2017年9月20日 */public class Mydbcp {	private static DataSource ds = null;	/**	 * 注册	 */	static {		try {			Context initContext=new InitialContext();			/**			 * lookup表示寻找容器的资源			 * java:comp/env/--》表示在当前的Web环境的上下文(Context对象)			 * jdbc/databsesName--》根据JNDI命名			 */			ds = (DataSource) initContext.lookup("java:comp/env/jdbc/t_order");		} catch (NamingException e) {			e.printStackTrace();		}	}	/**	 * 获取连接池对象	 * @return	 */	public Connection getConnection() {		Connection conn=null;		try {			conn=ds.getConnection();		} catch (SQLException e) {			e.printStackTrace();		}finally {			if(conn!=null)			{				try {					conn.close();				} catch (SQLException e) {					e.printStackTrace();				}			}		}		return conn;	}}package com.tiger.datasource;import java.sql.*;import javax.naming.*;import com.alibaba.druid.pool.DruidDataSource;/** * durid数据连接池 * @author tiger * @time 2017年9月20日 */public class Mydurid {		private static DruidDataSource ds = null;	/**	 * 注册	 */	static {		try {			Context initContext=new InitialContext();			/**			 * lookup表示寻找容器的资源			 * java:comp/env/--》表示在当前的Web环境的上下文(Context对象)			 * jdbc/databsesName--》根据JNDI命名			 */			ds = (DruidDataSource) initContext.lookup("java:comp/env/jdbc/MysqlDataSource");		} catch (NamingException e) {			e.printStackTrace();		}	}	/**	 * 获取连接池对象	 * @return	 */	public Connection getConnection() {		Connection conn=null;		try {			conn=ds.getConnection();		} catch (SQLException e) {			e.printStackTrace();		}finally {			if(conn!=null)			{				try {					conn.close();				} catch (SQLException e) {					e.printStackTrace();				}			}		}		return conn;	}	/**	 * 判断是否连接成功	 * @return	 */	public boolean isConnection() {		boolean ok=false;		Connection conn=null;		try {			conn=ds.getConnection();			ok=!conn.isClosed();		} catch (SQLException e) {			e.printStackTrace();		}finally {			if(conn!=null)			{				try {					conn.close();				} catch (SQLException e) {					e.printStackTrace();				}			}		}		return ok;	}}

转载地址:http://ajeof.baihongyu.com/

你可能感兴趣的文章
shell递归遍历目录的方法
查看>>
https改造过程中的一个坑
查看>>
GitLab 实现代码自动部署(转载自https://segmentfault.com/a/1190000011561808)
查看>>
free命令详解(转载)
查看>>
tcp协议端口解释(转载)
查看>>
三次挥手四次挥手(转载)
查看>>
keepalived
查看>>
php生成excel的另一种简单方法
查看>>
零基础子网划分(转载)
查看>>
子网(转载自百度百科)
查看>>
为你的静态资源使用cdn(转载)
查看>>
合并压缩css和Js的方式( 转载)
查看>>
压缩html,可以在输出之前使用(转载)
查看>>
用户中心和discuz的ucenter共通
查看>>
使用opcache为你的网站加速(转载)
查看>>
git push命令每次都要输入用户名和密码的问题处理
查看>>
在网站添加qq客服功能
查看>>
英文技术文档阅读练习——php的早期版本
查看>>
"Notice: unserialize(): Error at offset xx of xxx bytes"错误的处理(转载)
查看>>
windows下c/c++环境开发搭建
查看>>