java JDBC (八) 连接池 DBCP
package cn.sasa.demo1;
import javax.sql.DataSource;
import org.apache.commons.dbcp2.BasicDataSource;
public class DBUtils {
private static BasicDataSource datasource = new BasicDataSource();
static {
/**
* 连接池:
* 存放连接的容器
* 不需要每次都创建连接、释放连接
*
* DataSource接口
* java为数据库连接池提供的公共接口:javax.sql.DataSource
* 常用的连接池: DBCP C3P0
*
* 导入jar包
* DBCP连接池:http://commons.apache.org/proper/commons-dbcp/download_dbcp.cgi
* Commons Pool:http://commons.apache.org/proper/commons-pool/download_pool.cgi
* DBCP依赖于Pool
* 只导入上面两个包运行如下代码会报错:java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
* 还需导入包commons-logging:http://commons.apache.org/proper/commons-logging/download_logging.cgi
*/
//数据库连接信息,必须
datasource.setDriverClassName(DBProperties.driver);
datasource.setUrl(DBProperties.url);
datasource.setUsername(DBProperties.user);
datasource.setPassword(DBProperties.pwd);
//连接池的配置,可选信息
datasource.setInitialSize(10);//初始化的连接数
//....
}
public static DataSource getDataSource() {
return datasource;
}
}
package cn.sasa.demo1; import java.sql.SQLException;
import java.util.List; import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler; public class ConnectionPoolDemo {
static QueryRunner query = new QueryRunner(DBUtils.getDataSource());
public static void main(String[] args) {
select();
}
static void select() {
String sql = "SELECT * FROM product";
try {
List<Product> plist = query.query(sql, new BeanListHandler<Product>(Product.class));
for(Product product : plist) {
System.out.print(product.getPname()+"="+product.getPrice()+"\t");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package cn.sasa.demo1; import java.io.IOException;
import java.io.InputStream;
import java.util.Properties; public class DBProperties {
public static String driver = "";
public static String url = "";
public static String user = "";
public static String pwd = ""; static {
try {
InputStream input = DBProperties.class.getClassLoader().getResourceAsStream("database.properties");
Properties properties = new Properties();
properties.load(input);
driver = properties.getProperty("driver");
url = properties.getProperty("url");
user = properties.getProperty("user");
pwd = properties.getProperty("pwd");
}catch(IOException ex){
// ex.printStackTrace();
throw new RuntimeException("数据库信息获取失败");
}
}
}
package cn.sasa.demo1;
public class Product {
private int pid;
private String pname;
private double price;
private String ptype;
private String create_tm;
public Product() {}
public Product(int pid, String pname,double price,
String ptype, String create_tm) {
this.pid = pid;
this.pname = pname;
this.price = price;
this.ptype = ptype;
this.create_tm = create_tm;
}
public int getPid() {
return pid;
}
public void setPid(int pid) {
this.pid = pid;
}
public String getPname() {
return pname;
}
public void setPname(String pname) {
this.pname = pname;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getPtype() {
return ptype;
}
public void setPtype(String ptype) {
this.ptype = ptype;
}
public String getCreate_tm() {
return create_tm;
}
public void setCreate_tm(String create_tm) {
this.create_tm = create_tm;
}
}
java JDBC (八) 连接池 DBCP的更多相关文章
- jdbc数据连接池dbcp要导入的jar包
jdbc数据连接池dbcp要导入的jar包 只用导入commons-dbcp-x.y.z.jarcommons-pool-a.b.jar
- c3p0、dbcp、tomcat jdbc pool 连接池配置简介及常用数据库的driverClass和驱动包
[-] DBCP连接池配置 dbcp jar包 c3p0连接池配置 c3p0 jar包 jdbc-pool连接池配置 jdbc-pool jar包 常用数据库的driverClass和jdbcUrl ...
- JDBC数据源连接池(3)---Tomcat集成DBCP
此文续<JDBC数据源连接池(2)---C3P0>. Apache Tomcat作为一款JavaWeb服务器,内置了DBCP数据源连接池.在使用中,只要进行相应配置即可. 首先,确保Web ...
- DBCP,C3P0与Tomcat jdbc pool 连接池的比较
hibernate开发组推荐使用c3p0; spring开发组推荐使用dbcp(dbcp连接池有weblogic连接池同样的问题,就是强行关闭连接或数据库重启后,无法reconnect,告诉连接被重置 ...
- JDBC之 连接池
JDBC之 连接池 有这样的一种现象: 用java代码操作数据库,需要数据库连接对象,一个用户至少要用到一个连接.现在假设有成千上百万个用户,就要创建十分巨大数量的连接对象,这会使数据库承受极大的压力 ...
- JDBC数据源连接池(4)---自定义数据源连接池
[续上文<JDBC数据源连接池(3)---Tomcat集成DBCP>] 我们已经 了解了DBCP,C3P0,以及Tomcat内置的数据源连接池,那么,这些数据源连接池是如何实现的呢?为了究 ...
- JDBC数据源连接池(2)---C3P0
我们接着<JDBC数据源连接池(1)---DBCP>继续介绍数据源连接池. 首先,在Web项目的WebContent--->WEB-INF--->lib文件夹中添加C3P0的j ...
- 连接池dbcp
连接池dbcp DBCP:apache组织 使用步骤: 1.导入jar包(commons-dbcp-1.4.jar和commons-pool-1.5.6.jar.commons-logging-1.2 ...
- 关于JDBC和连接池我学到的(转载保存)
1.JDBC数据库连接池的必要性 在使用开发基于数据库的web程序时,传统的模式基本是按以下步骤: 在主程序(如servlet.beans)中建立数据库连接. 进行sql操作 断开数据库连接. 这种模 ...
随机推荐
- 关于Stm32定时器+ADC+DMA进行AD采样的实现
Stm32的ADC有DMA功能这都毋庸置疑,也是我们用的最多的!然而,如果我们要对一个信号(比如脉搏信号)进行定时采样(也就是隔一段时间,比如说2ms),有三种方法: 1.使用定时器中断每隔一定时间进 ...
- python使用上下文对代码片段进行计时,非装饰器
之前发过了一组常用的装饰器,包括了一个where_is_it_called的装饰器,可以计时和对入参和返回结果,被何处调用进行记录,十分强大. 这是用上下文,上下文的好处是,不需要抽成函数才能计时. ...
- MySQL临时表创建及旧表建新表
1.创建临时表 临时表是一张表,用来临时保存一些数据 特点: 只对创建该临时表的用户可见: 当会话结束时,MySQL自动删除临时表. 临时表的核心:建表和删表消耗资源极其少 创建临时表的基本格式: C ...
- OpenGL——圆公式相关变化的绘制
#include<iostream> #include <math.h> //旧版本 固定管线 #include<Windows.h> #include <G ...
- VIM 的帮助文档在哪里?看这里。
我一直奇怪,像VIM这么优秀的软件怎么就没有个详细的文档. 再优秀,新手不会用也是白搭啊.再说,谁生下来就是老手么? 只有那个简单的tutor么? 虽说看了这个tutor也能用了,但作为“编辑器之神” ...
- libuv示例代码
https://github.com/nikhilm/uvbook/tree/master/code
- [原]Jenkins(十一)---jenkins使用管理员admin创建用户和分配权限
/** * lihaibo * 文章内容都是根据自己工作情况实践得出. * 版权声明:本博客欢迎转发,但请保留原作者信息! http://www.cnblogs.com/horizonli/p/533 ...
- Windows-NTFS-ADS在渗透测试中的利用
0.什么是ADS Windows:微软公司的一款视窗操作系统,其内核为WindowsNT. NTFS:WindowsNT环境的限制级专用文件系统. ADS:NTFS的系统特性,交换数据流(Altern ...
- hadoop的输入和输出文件
对于hadoop的输入和输出文件,有什么要求吗?
- D - Pagodas
n pagodas were standing erect in Hong Jue Si between the Niushou Mountain and the Yuntai Mountain, l ...