[javaEE] 开源数据库连接池
一些开源组织提供了数据源的独立实现:
DBCP数据库连接池
C3P0数据库连接池
Apache Tomcat内置的连接池
DBCP连接池
apache提供的连接池实现,需要导入common-dbcp.jar commons-pool.jar
import java.io.FileReader;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Properties; import javax.sql.DataSource; import org.apache.commons.dbcp.BasicDataSourceFactory; public class DBCPTest {
public static void main(String[] args) throws Exception {
//导入配置文件
Properties prop=new Properties();
prop.load(new FileReader("dbcp.properties"));
//获取数据源
BasicDataSourceFactory factory=new BasicDataSourceFactory();
DataSource pool=factory.createDataSource(prop); Connection conn=pool.getConnection();
//获取传输器对象
Statement statement=conn.createStatement();
//获取结果集对象
ResultSet resultSet=statement.executeQuery("select * from user");
//遍历
while(resultSet.next()){
String username=resultSet.getString("username");
System.out.println(username);
}
//关闭资源
resultSet.close();
statement.close();
conn.close(); }
}
在项目目录下新建dacp.properties
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql:///java
username=root
password=root
C3P0连接池
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement; import com.mchange.v2.c3p0.ComboPooledDataSource; public class DBCPTest {
public static void main(String[] args) throws Exception {
//使用C3P0
ComboPooledDataSource pool=new ComboPooledDataSource();
Connection conn=pool.getConnection();
//获取传输器对象
Statement statement=conn.createStatement();
//获取结果集对象
ResultSet resultSet=statement.executeQuery("select * from user");
//遍历
while(resultSet.next()){
String username=resultSet.getString("username");
System.out.println(username);
}
//关闭资源
resultSet.close();
statement.close();
conn.close(); }
}
C3P0需要在类加载目录下新建c3p0-config.xml
<?xml version="1.0" encoding="utf-8"?>
<c3p0-config>
<default-config>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql:///java</property>
<property name="user">root</property>
<property name="password">root</property>
</default-config>
</c3p0-config>
[javaEE] 开源数据库连接池的更多相关文章
- 开源数据库连接池之Tomcat内置连接池
本篇介绍几种开源数据库连接池,同时重点讲述如何使用Tomcat服务器内置的数据库连接池. 之前的博客已经重点讲述了使用数据库连接池的好处,即是将多次创建连接转变为一次创建而使用长连接模式.这样能减少数 ...
- 开源数据库连接池之C3P0
本篇介绍几种开源数据库连接池,同时重点讲述如何使用C3P0数据库连接池. 之前的博客已经重点讲述了使用数据库连接池的好处,即是将多次创建连接转变为一次创建而使用长连接模式.这样能减少数据库创建连接的消 ...
- 开源数据库连接池之DBCP
本篇介绍几种开源数据库连接池,同时重点讲述如何使用Apache公司的的DBCP数据库连接池. 前面一篇博客已经重点讲述了使用数据库连接池的好处,即是将多次创建连接转变为一次创建而使用长连接模式.这样能 ...
- 【MySQL】自定义数据库连接池和开源数据库连接池的使用
数据库连接池的概念 数据库连接背景 数据库连接是一种关键的.有限的.昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出.对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性 ...
- 开源数据库连接池proxool
可以根据自己的实际情况,选择不同的配置,可以选择properties.XML.Servlet等配置,官方网站上都有介绍. 1.下载proxool 地址:http://proxool.sourcef ...
- javaEE(12)_数据库连接池
一.直接获取数据库连接和通过池获取示意图: 二.编写数据库连接池 1.实现DataSource接口,并实现连接池功能的步骤: •在DataSource构造函数中批量创建与数据库的连接,并把创建的连接加 ...
- java web学习总结(十六) -------------------数据库连接池
一.应用程序直接获取数据库连接的缺点 用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长.假设网站一天10万访问量,数据库服务器就需要创建10万次连接,极大 ...
- JavaWeb学习总结(十三)--数据库连接池
一.数据库连接池的概念 用池来管理Connection,这可以重复使用Connection.有了池,所以我们就不用自己来创建Connection,而是通过池来获取Connection对象.当使用完Co ...
- javaweb学习总结(三十九)——数据库连接池
一.应用程序直接获取数据库连接的缺点 用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长.假设网站一天10万访问量,数据库服务器就需要创建10万次连接,极大 ...
随机推荐
- cmd应用
如何用cmd命令新建和打开一个隐藏文件夹 随着电脑的广泛应用,个人电脑的私人空间越来越大,很多人喜欢把个人的一些私隐的文件存放在电脑上,私隐文件当然是不想别人看到的,为了防止别人看不见自己的文件,可以 ...
- window.onload与$(document).ready()的对比
一.window.onload:(1)必须等待网页中所有的内容加载完毕后(包括图片)才能执行:(2)不能同时编写多个,如: window.onload = function(){ alert(&quo ...
- 多继承c3算法
一.mro mro即 method resolution order (方法解释顺序),主要用于在多继承时判断属性的路径(来自于哪个类). print(类.mro)得到属性路径按继承顺序 在pytho ...
- CH5102 Mobile Service
CH5102 Mobile Service 描述 一个公司有三个移动服务员,最初分别在位置1,2,3处.如果某个位置(用一个整数表示)有一个请求,那么公司必须指派某名员工赶到那个地方去.某一时刻只有一 ...
- c语言-求完全数的一个算法
#include<iostream> #include<math.h> using namespace std; int main() { int n,i,j=0,k,a[10 ...
- python为何需要虚拟环境--Python虚拟环境的安装和配置-virtualenv
一 虚拟环境 virtual environment 它是一个虚拟化,从电脑独立开辟出来的环境.通俗的来讲,虚拟环境就是借助虚拟机docker来把一部分内容独立出来,我们把这部分独立出来的东西称作“容 ...
- tomcat在bin下的startup.bat下启动报错
测试环境是否安装配置好. 如果环境配置好.报错如下:或者是730013 -----------解决问题:是因为tomcat端口被占用.查看是否启动两个tomcat
- 编写高质量代码:Web前端开发修炼之道(四)
这一节是继上一节高质量的Javascript 7)编程实用技巧 1:弹性 从 一个标签区和内容区的实例(就是点击不同的标签菜单显示不同的内容块)来说明不需要每个tabmenu都设置onclick事件, ...
- bzoj 3261 最大异或和 可持久化字典树(01树)
题目传送门 思路: 由异或的性质可得,题目要求的式子可以转化成求$max(pre[n]^x^pre[i])$,$pre[i]$表示前缀异或和,那么我们现在就要求出这个东西,所以用可持久化字典树来求,每 ...
- bzoj 4032(A的一个最短的子串,它不是B的子串 || A的一个最短的子串,它不是B的子序列 || A的一个最短的子序列,它不是B的子串||A的一个最短的子序列,它不是B的子序列)
在虐各种最长公共子串.子序列的题虐的不耐烦了之后,你决定反其道而行之. 一个串的“子串”指的是它的连续的一段,例如bcd是abcdef的子串,但bde不是. 一个串的“子序列”指的是它的可以不连续的一 ...