下面是代码
他要导入相关的jar包
有jdbc、Druid的相关jar包
百度上就可以找到
或者加Q:858689814找我要
Druid.properties文件
这个文件放src里面
//驱动
driverClassName=com.mysql.jdbc.Driver
//地址
url=jdbc:mysql://localhost:3306/db1
//用户名
username=root
//密码
password=root
//初始化连接数量
initialSize=5
//最大连接数
maxActive=10
//最大等待时间
maxWait=3000
工具类
package utiles;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
/**
* 数据库连接池工具类
* 定义工具类
* 1. 定义一个类 JDBCUtils
* 2. 提供静代码块加载配置文件,初始化连接池对象
* 3. 提供方法
* 1. 获取连接方法:通过数据库连接池获取连接
* 2. 释放资源
* 3. 获取连接池的方法
*/
//1. 定义一个类 JDBCDruidUtils
public class JDBCDruidUtils {
//提升作用域
public static DataSource ds = null;
//2. 提供静代码块加载配置文件,初始化连接池对象
static {
try {
Properties pro = new Properties();
//读取数据进Properties
pro.load(JDBCDruidUtils.class.getClassLoader().getResourceAsStream("druid.properties"));
//创建连接池对象
ds = DruidDataSourceFactory.createDataSource(pro);
} catch (Exception e) {
e.printStackTrace();
}
}
//3. 提供方法
// 1. 获取连接方法:通过数据库连接池获取连接
public static Connection getConnection() throws SQLException {
return ds.getConnection();
}
//3. 提供方法
//2. 释放资源方法
public static void close(Statement stmt, Connection conn) {
close(null, stmt, conn);
}
public static void close(ResultSet rs, Statement stmt, Connection conn) {
try {
if (rs != null) {
rs.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if (rs != null) {
rs.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if (rs != null) {
rs.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
// 3. 提供方法
//3. 获取连接池的方法
public static DataSource getDatasource() {
return ds;
}
}
实现的代码
package Druid;
import utiles.JDBCDruidUtils;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
/**
* Druid 德鲁伊连接池
* 用连接池工具类查询user表的数据
*/public class JdbcDruidDemo_1 {
public static void main(String[] args) {
//将这些弄到大括号外面提升作用域,好释放资源
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
//1.创建连接数据库对象
conn = JDBCDruidUtils.getConnection();
//2. 创建sql语句
String sql = "select * from user";
//3. 创建执行sql对象
stmt = conn.createStatement();
//4. 创建一个ResultSet:结果集对象,封装查询结果
rs = stmt.executeQuery(sql);
//5. 然后在用ResultSet里的方法 next():游标向下移动一行 判断是否有数据 有就是true,没有就是false
while (rs.next()) {
//rs.getString():传递的是数据库的字段
String username = rs.getString("username");
int password = rs.getInt("password");
//6. 输入结果
System.out.println(username + " " + password);
}
} catch (Exception e) {
e.printStackTrace();
}finally{
// 7.释放资源
JDBCDruidUtils.close(rs,stmt,conn);
}
}
}