- 什么是连接池以及作用?
Druid连接池是阿里巴巴开源的数据库连接池项目,后面贡献给Apache开源。Druid的作用是负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个。Druid连接池为监控而生,内置强大的监控功能,监控特性不影响性能。功能强大,能防SQL注入,内置Loging能诊断Hack应用行为。
SQL脚本环境:
CREATE TABLE tuser(
id int(10) PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(30) NOT NULL,
jobs VARCHAR(30) NOT NULL,
phone VARCHAR(30) NOT NULL
);
INSERT INTO `tuser`(`name`,jobs,phone) VALUES('Sunny','IT','027-57998');
1.测试需要两个架包分别是Druid和MySQL的连接驱动,网上下载即可
2.建一个druid的配置文件
url=jdbc:mysql:///vdemo
driverClassName=com.mysql.cj.jdbc.Driver
username=root
password=123456
##初始连接数,默认0
initialSize=10
#最大连接数,默认8
maxActive=30
#最小闲置数
minIdle=10
#获取连接的最大等待时间,单位毫秒
maxWait=2000
#缓存PreparedStatement,默认false
poolPreparedStatements=true
#缓存PreparedStatement的最大数量,默认-1(不缓存)
#大于0时会自动开启缓存PreparedStatement,所以可以省略上一句设置
maxOpenPreparedStatements=20
3.写测试代码
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Properties;
public class DruidExample {
public static void main(String[] args) throws Exception {
Properties properties=new Properties();
//通过当前类的class对象获取资源文件
InputStream is = DruidExample.class.getResourceAsStream("/druid.properties");
properties.load(is);
DataSource druidDataSource = DruidDataSourceFactory.createDataSource(properties);
Connection connection = druidDataSource.getConnection();
String SQL = "SELECT * FROM tuser WHERE id = ? ";
PreparedStatement preparedStatement = connection.prepareStatement(SQL);
preparedStatement.setInt(1,1);
ResultSet resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
String job = resultSet.getString("jobs");
String phone = resultSet.getString("phone");
System.out.println("用户Id为:"+id);
System.out.println("用户姓名为:"+name);
System.out.println("用户工作为:"+job);
System.out.println("用户电话为:"+phone);
}
}
}
测试查询结果:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)