Druid连接池
使用步骤
java+mysql
1.导入druid jar包
2.在项目的src下面配置任意文件名的properties文件,文件里面配置以下内容:
DriverClass=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/库名
username=root
password=root
//默认连接对象数
initialSize=5
3.创建连接池工厂
// 专门用于读取properties文件的类
properties pro=new Properties();
// 使用load方法将properties文件载入
pro.load(JDBCUtils.class.getClassLoader().getResourceAsStream("配置文件名"));
// 使用DruidDataSourceFactory创建连接池
DataSource ds=DruidDataSourceFactory.createDataSource()
4.获取连接对象
Connection conn=ds.getConnection();
5.归还连接
ds.close();
6.JDBC druid连接池小案例
①:工具类
package com.qf.edu.utils;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
import javax.sql.DataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;
public class JDBCUtils {
//1.获取连接池
public static DataSource ds = null;
static {
try {
Properties properties = new Properties();
//2.通过类加载器加载配置文件
properties.load(JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties"));
ds = DruidDataSourceFactory.createDataSource(properties);
} catch (Exception e) {
e.printStackTrace();
}
}
//2.通过连接池获取连接对象,从连接池里面拿连接对象
public static Connection getConnection() throws SQLException{
Connection conn = ds.getConnection();
return conn;
}
//3.关闭资源,通过连接对象关闭连接池,这里参数传递的是上面返回出来的连接对象
public static void close(PreparedStatement ps, Connection conn) {
if (ps != null) {
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
public static void close(PreparedStatement ps, Connection conn,ResultSet rs){
close(ps, conn);
if (rs!=null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
②:删除功能
package com.qf.edu.service;
import java.sql.Connection;
import java.sql.PreparedStatement;
import com.qf.edu.utils.JDBCUtils;
public class JdbcService {
public int delete(int id) {
Connection conn = null;
PreparedStatement ps = null;
int row = 0;
try {
conn = JDBCUtils.getConnection();
String sql = "delete from stu where id=?";
ps = conn.prepareStatement(sql);
ps.setInt(1, id);
row = ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}
finally {
JDBCUtils.close(ps, conn);
}
return row;
}
}
③:测试类
package com.qf.edu.test;
import java.util.Scanner;
import com.qf.edu.service.JdbcService;
public class JdbcTest {
public static void main(String[] args) {
delete();
}
public static void delete() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要删除的id:");
int id = sc.nextInt();
JdbcService js = new JdbcService();
int row = js.delete(id);
if (row > 0) {
System.out.println("删除成功");
} else {
System.out.println("删除失败");
}
}
}
④:配置文件 druid.properties
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/student
username=root
password=root
initialSize=5