数据库连接池
理解:是一个容器,存放数据库使用。
接口:DataSource 接口获取连接的方法 归还连接方法
(java.sql包下) getConnection() Connection.close()
C3P0:数据库连接技术
步骤:jar包
定义配置文件:固定名称
1.c3p0.properties
2.c3p0-config.xml
创建数据库连接池对象 ComboPooledDataSource
获取连接 getConnection
Druid:数据库连接池
public class Druid {
public static void main(String[] args) throws Exception {
//1.导入jar包
//2.定义配置文件
//3.加载配置文件
Properties pr= new Properties();
InputStream RE = Druid.class.getClassLoader().getResourceAsStream("druid.properties");
pr.load(RE);
//4.获取连接池对象
DataSource da = DruidDataSourceFactory.createDataSource(pr);
//获取链接
Connection con = da.getConnection();
}
}
1.导入jar包 druid-1.0.9.jar
2.定义配置文件
是properties形式的
可以叫任意名称,可以放在任意目录下
3.加载配置文件
Properties pr=new Properties();
pr.load():以简单的线性格式从输入字符流读取属性列表(关键字和元素对)
getClassLoader()方法返回类的类加载器
getResource:获取资源则加上"/"默认获取的是绝对路径,通过getResourceAsStream获取资源则不能加上"/",此时是通过classLoader获取资源的并且获取的是绝对路径.
4.获取数据库连接池:DruidDataSourceFactory
5.获取连接:getConnection
Uruid配置文件关键字解释
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/db3
username=root
password=root
# 初始化连接对象
initialSize=5
# 最大连接数
maxActive=10
# 最大等待时间
maxWait=3000
Druid 如何定义工具类
package cn.demo;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import com.sun.org.apache.bcel.internal.generic.DASTORE;
import javax.sql.DataSource;
import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
public class text {
//定义静态成员变量
private static DataSource ds;
//定义静态代码块
static {
//加载配置文件
Properties pr=new Properties();
try {
pr.load(text.class.getClassLoader().getResourceAsStream("druid.properties"));
// gr.load以简单的线性格式从输入字符流读取属性列表(关键字和元素对)
//getClassLoader()方法返回类的类加载器
//获取DataSource
//并给ds赋值
ds = DruidDataSourceFactory.createDataSource(pr);
} catch (Exception e) {
e.printStackTrace();
}
}
//获取连接
public static Connection get() throws SQLException {
return ds.getConnection();
}
//归还连接
public static void close2(Statement st,Connection co){
close1(null,st,co);
}
//归还连接重载
public static void close1(ResultSet rs,Statement st,Connection co){
if (rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (st!=null){
try {
st.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (co!=null){
try {
co.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
//获取连接池方法
public static DataSource getdata(){
return ds;
}
}
创建一个类
创建静态变量配合静态代码块使用,初始化连接对象
方法的使用:
获取连接的方法:数据库连接池获取连接
释放资源
获取连接的方法