java学习笔记—第三方数据库连接池包1(29)
第一步:导入dbcp包

第二步:通过核心类连接数据
BasicDataSource它是javax.sql.DataSrouce的子类。
一个工具类:BasicDataSourceFactory。
手工通过代码连接数据库:
BasicDataSource ds = new BasicDataSource();
//设置driver
ds.setDriverClassName("com.mysql.jdbc.Driver");
//设置url
ds.setUrl("jdbc:mysql:///db909?characterEncoding=UTf8");
ds.setPassword("");
ds.setUsername("root");
ds.setMaxActive() ;//设置最多有几个连接
ds.setInitialSize();//设置在开始时创建几个连接
手工连接,不建议这么做。
第三步:创建一个资源文件
在dbcp中一个类专门用于读取资源文件的:
BasicDataSourceFactory
#以下所有属性,都来自于BaiscDataSource的setXxxx
//增加一个配置文件jdbc.properties
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql:///db909
username=root
password=
maxActive= Properties p = new Properties();
p.load(DbcpPool.class.getResourceAsStream("jdbc.properties"));
DataSource ds =
new BasicDataSourceFactory().createDataSource(p) ;
第四步、使用连接池
在一个项目中,就只能拥有一个DataSource的实例。在这个dataqSource3中有多个Connectioin。
声明一个工厂类,创建维护唯一的一个DataSource
package cn.itcast.utils;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSourceFactory;
public class DataSourceUtils {
private DataSourceUtils(){}
private static DataSource ds;
static{
try{
Properties p =
new Properties();
p.load(DataSourceUtils
.class.getClassLoader()
.getResourceAsStream("jdbc.properties"));
ds =
new BasicDataSourceFactory().createDataSource(p);
}catch(Exception e){}
}
//返回一个唯一的连接
public static Connection getCon(){
Connection con = null;
try {
con = ds.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
return con;
}
//提供一个方法返回DataSource
public static DataSource getDs(){
return ds;
}
}
java学习笔记—第三方数据库连接池包1(29)的更多相关文章
- java学习笔记—第三方操作数据库包专门接收DataSource-dbutils (30)
Dbutils 操作数据第三方包.依赖数据源DataSource(DBCP|C3p0). QueryRunner – 接收DataSource|Connection,查询数据删除修改操作.返回结果. ...
- JDBC学习笔记(8)——数据库连接池(dbcp&C3P0)
JDBC数据库连接池的必要性 一.在使用开发基于数据库的web程序时,传统的模式基本是按一下步骤: 1)在主程序(如servlet/beans)中建立数据库连接 2)进行sql操作 3)断开数据库连接 ...
- 【转】JDBC学习笔记(8)——数据库连接池(dbcp&C3P0)
转自:http://www.cnblogs.com/ysw-go/ JDBC数据库连接池的必要性 一.在使用开发基于数据库的web程序时,传统的模式基本是按一下步骤: 1)在主程序(如servlet/ ...
- JDBC编程学习笔记之数据库连接池的实现
在JDBC编程的时候,获取到一个数据库连接资源是很宝贵的,倘若数据库访问量超大,而数据库连接资源又没能得到及时的释放,就会导致系统的崩溃甚至宕机.造成的损失将会是巨大的.再看有了数据库连接池的JDBC ...
- java学习笔记—c3p0连接池与元数据分析(42)
第一步:导入c3p0包 第二步:在classpath目录下,创建一个c3p0-config.xml <?xml version="1.0" encoding="UT ...
- 0041 Java学习笔记-多线程-线程池、ForkJoinPool、ThreadLocal
什么是线程池 创建线程,因为涉及到跟操作系统交互,比较耗费资源.如果要创建大量的线程,而每个线程的生存期又很短,这时候就应该使用线程池了,就像数据库的连接池一样,预先开启一定数量的线程,有任务了就将任 ...
- java学习笔记—标准连接池的实现(27)
javax.sql.DataSource. Java.sql.* DataSource 接口由驱动程序供应商实现.共有三种类型的实现: 基本实现 - 生成标准的 Connection 对象 – 一个D ...
- Java学习笔记4
Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...
- 20145230《java学习笔记》第九周学习总结
20145230 <Java程序设计>第9周学习总结 教材学习内容 JDBC JDBC简介 JDBC是用于执行SQL的解决方案,开发人员使用JDBC的标准接口,数据库厂商则对接口进行操作, ...
随机推荐
- RAD XE8
http://community.embarcadero.com/index.php/blogs/entry/rad-studio-2015-roadmap http://www.embarcader ...
- CImage 往Picture Control贴图 图像显示不正常
在使用CImage 往vc控件 picture Control 上贴图的时候图像显示不太正常如图: 已知原始图片的宽高为640*640 而我上面picture Control 控件宽高小于原始图像 ...
- Python time、datetime
简介: 记录一下 Python 如何获取昨天.今天.明天时间及格式化. 1.今天 In [1]: import time In [2]: print time.strftime('%Y.%m.%d', ...
- col标签的相关实验
col上有width属性,如果对应值没有单位,默认是像素 <!DOCTYPE html> <html> <head> <title>col相关实验< ...
- centos 使用windows7 存储
1. 在Windows7上创建一个带密码的用户,如disk 2. 创建一个文件夹,如 D:\centos-disk2 3. 选中此文件夹,点击上方的 共享 -> 特定用户, 添加disk用户, ...
- unity3d 移动与旋转 1
移动与旋转 1 player角色随asdw按键左右上下移动并旋转 public void Update() { // Reset player rotation to look in the same ...
- 3-java_string学习笔记:
java中String的常用方法
- Java多线程同步方法
一.同步方法 即有synchronized关键字修饰的方法. 由于java的每个对象都有一个内置锁,当用此关键字修饰方法时, 内置锁会保护整个方法.在调用该方法前,需要获得内置锁,否则就处于阻塞状态. ...
- 二分图 and code1170 双栈排序
6.6二分图 二分图是这样一个图: 有两顶点集且图中每条边的的两个顶点分别位于两个顶点集中,每个顶点集中没有边直接相连接. 无向图G为二分图的充分必要条件是,G至少有两个顶点,且其所有回路的长度均为偶 ...
- 谈谈WhatsApp一年设计经历和收获
以下内容由Mockplus团队翻译整理,仅供学习交流,Mockplus是更快更简单的原型设计工具. 关于WhatApp和Facebook如何实现规模设计的思考 我已经在Facebook担任产品经理 ...