druid连接池的使用
一、druid非jdk类库,需要导包:
将下方druid-1.0.9.jar导入到我们的工程中:
二、准备druid连接池的配置文件
druid连接池的配置需要自己完成,所以对文件名和存储位置没有硬性要求
因为druid连接池需要使用到properties属性集,所以文件类型就为properties的文档。
参数说明:
url:连接数据库的协议;
driverClassName:加载并注册的驱动类名
username:连接数据库的账号;
password:连接数据库的密码;
initialSize:默认的连接池数量;
maxActive:最大的连接池数量;
maxWait:获取连接的最大超时时间;
三、依赖的druid类库和配置文档已完成,开始写代码
package com.itheima.advance.test.JDBC_datasource;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import org.springframework.jdbc.datasource.embedded.DataSourceFactory;
import javax.sql.DataSource;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.util.Properties;
public class Demo09 {
public static void main(String[] args) throws Exception {
//创建properties属性集
Properties properties = new Properties();
//通过类加载器加载properties文档为字节输入流
InputStream is = Demo09.class.getClassLoader().getResourceAsStream("druid.properties");
//将读取到的字节输入流使用properties的load()方法加载到属性集中
properties.load(is);
//创建druid连接池的核心类,需要使用DruidDataSourceFactory的静态属性创建
DataSource ds = DruidDataSourceFactory.createDataSource(properties);
//通过创建的DataSource来获取连接对象
Connection connection = ds.getConnection();
//创建需要执行的sql语句
String sql = "UPDATE user SET password = ? WHERE username = ?";
//通过连接对象可以像我们普通的jdbc一样,获取prepareSatement
PreparedStatement pstmt = connection.prepareStatement(sql);
//给sql语句中的?占位符进行赋值
pstmt.setString(1,"gaimimala");
pstmt.setString(2,"wangliu");
//赋值后让sql语句进行执行,此sql语句属于dml,所以使用update
pstmt.executeUpdate();
//关闭资源
pstmt.close();
//此处的connection并不是真正的释放资源,而是将connection归还给druid连接池
connection.close();//底层是使用的动态代理更改了connection的close方法
}
}