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操作 断开数据库连接. 这种模 ...
随机推荐
- 关于Unity中NGUI的3D角色血条的实现
首先要到Unity的Assets Store里面去下载一个扩展的Package叫NGUI HUD Text v1.13(81),注意如果没有安装NGUI就必须先安装NGUI插件,否则会用不了,因为HU ...
- PHP最全笔记(二)(值得收藏,不时翻看一下)
/* [goto]5.3+ 版本 */用来跳转到程序中的某一指定位置该目标位置可以用目标名称 加上冒号来标记.PHP中的goto有一定限制,只能在同一个文件和作用域中跳转, 也就是说你无法跳出一 ...
- 多线程开发之二 NSOperation
效果如下: ViewController.h #import <UIKit/UIKit.h> @interface ViewController : UITableViewControll ...
- spring扩展的常用接口
一:ApplicationContextAware接口 实现ApplicationContextAware接口,重写setApplicationContext方法,可以将spring容器上下文对象注入 ...
- 网络编程 -- RPC实现原理 -- Netty -- 迭代版本V1 -- 入门应用
网络编程 -- RPC实现原理 -- 目录 啦啦啦 V1——Netty入门应用 Class : NIOServerBootStrap package lime.pri.limeNio.netty.ne ...
- ElasticSearch(一)-- 简介
ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java开发的,并作为Apach ...
- JS编程题
1.计算给定数组 arr 中所有元素的总和 (数组中的元素均为 Number 类型) function sum(arr) { var sum=0; for (var i=arr.length-1; i ...
- Get Started with the Google Fonts API
Get Started with the Google Fonts API This guide explains how to use the Google Fonts API to add fon ...
- HandlerSocket介绍
HandlerSocket的原理 HandlerSocket的应用场景: MySQL自身的局限性,很多站点都采用了MySQL+Memcached的经典架构,甚至一些网站放弃MySQL而采用NoSQL产 ...
- Unity 给Mono脚本添加Try Catch工具
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Run ...