Java JDBC篇4——数据库连接池

1、DBCP

1.1、依赖jar包

官网:https://mvnrepository.com/artifact/org.apache.commons/commons-dbcp2

mysql-connector-java-5.1.49.jar 百度云:https://pan.baidu.com/s/17J2VfkGS2h44j69eB8TuFA提取码:nhnt

mysql-connector-java-8.0.25.jar 百度云:https://pan.baidu.com/s/1b8n7650uMKJtwidoptOjNQ提取码:wtvn

commons-dbcp2-2.8.0 百度云:https://pan.baidu.com/s/10bcq3Fzo36MnFFMppICi3A提取码:1tkz

commons-pool2-2.8.0 百度云:https://pan.baidu.com/s/1sZLSi0nRZqeYbhDuO5Mkxw提取码:hk3w

commons-logging-1.2 百度云:https://pan.baidu.com/s/1ZFZZcmCjZtRwumh_qisKIw提取码:2uaz

1.2、快速入门

url=jdbc:mysql://localhost:3306/test
user=root
password=blingbling123.
driver=com.mysql.jdbc.Driver
public class DBCPPoolUtils {private static String urls;private static String user;private static String password;private static String driver;private static BasicDataSource basicDataSource=null;static {Properties properties=new Properties();ClassLoader classLoader=JDBCtool.class.getClassLoader();URL url=classLoader.getResource("connection.properties");String path=url.getPath();try {properties.load(new FileReader(path));} catch (IOException e) {e.printStackTrace();}System.out.println(properties);basicDataSource=new BasicDataSource();basicDataSource.setDriverClassName(properties.getProperty("driver"));basicDataSource.setUrl(properties.getProperty("url"));basicDataSource.setUsername(properties.getProperty("user"));basicDataSource.setPassword(properties.getProperty("password"));}public static Connection getConnection() throws SQLException {System.out.println(basicDataSource);//从连接池中获取连接Connection connection = basicDataSource.getConnection();return connection;}public static void close(Connection connection, Statement statement, ResultSet resultSet){if (resultSet!=null){try {resultSet.close();} catch (SQLException e) {e.printStackTrace();}}if (statement!=null){try {statement.close();} catch (SQLException e) {e.printStackTrace();}}if (connection!=null){try {connection.close();} catch (SQLException e) {e.printStackTrace();}}}
}
public class Test {public static void main(String[] args) throws SQLException {Connection connection = DBCPPoolUtils.getConnection();String sql="select * from user";PreparedStatement preparedStatement = connection.prepareStatement(sql);ResultSet resultSet = preparedStatement.executeQuery();while (resultSet.next()){System.out.println(resultSet.getString("username"));}DBCPPoolUtils.close(connection,preparedStatement,resultSet);}
}

1.3、配置项

属性 描述
driverClassName 数据库驱动名称
url 数据库地址
username 用户名
password 密码
maxActive 最大连接数量
maxIdle 最大空闲连接
minIdle 最小空闲连接
initialSize 初始化连接

2、Druid

2.1、依赖jar包

官网:https://mvnrepository.com/artifact/com.alibaba/druid

mysql-connector-java-5.1.49.jar 百度云:https://pan.baidu.com/s/17J2VfkGS2h44j69eB8TuFA提取码:nhnt

mysql-connector-java-8.0.25.jar 百度云:https://pan.baidu.com/s/1b8n7650uMKJtwidoptOjNQ提取码:wtvn

druid1.2.6 百度云:https://pan.baidu.com/s/1f90LwWhAtPaAOASKf1UfPA提取码:iq2n

2.2、快速入门

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test
username=root
password=blingbling123.
initialSize=5
maxActive=10
maxWait=3000
public class DruidPoolUtils {private static DataSource dataSource=null;static {Properties properties=new Properties();ClassLoader classLoader=JDBCtool.class.getClassLoader();URL url=classLoader.getResource("connection.properties");String path=url.getPath();try {properties.load(new FileReader(path));System.out.println(properties);dataSource= DruidDataSourceFactory.createDataSource(properties);} catch (IOException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();}}public static Connection getConnection(){try {return dataSource.getConnection();} catch (SQLException e) {e.printStackTrace();return null;}}public static void close(Connection connection, Statement statement, ResultSet resultSet){if (resultSet!=null){try {resultSet.close();} catch (SQLException e) {e.printStackTrace();}}if (statement!=null){try {statement.close();} catch (SQLException e) {e.printStackTrace();}}if (connection!=null){try {connection.close();} catch (SQLException e) {e.printStackTrace();}}}
}
public class Test {public static void main(String[] args) throws SQLException {Connection connection = DruidPoolUtils.getConnection();String sql="select * from user";PreparedStatement preparedStatement = connection.prepareStatement(sql);ResultSet resultSet = preparedStatement.executeQuery();while (resultSet.next()){System.out.println(resultSet.getString("username"));}DruidPoolUtils.close(connection,preparedStatement,resultSet);}
}

Java JDBC篇4——数据库连接池相关推荐

  1. Java JDBC篇1——初识JDBC

    Java JDBC篇1--初识JDBC Java DataBase Connectivity Java 数据库连接(Java语言操作数据库) 1.什么是JDBC 其实是官方定义的一套操作所有关系型数据 ...

  2. JDBC开发之数据库连接池

    JDBC开发之数据库连接池 使用数据库连接池优化程序性能 应用程序直接获取链接的缺点:用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长.假设网站一天10万 ...

  3. JDBC中C3PO数据库连接池详解

    -----------------------------------------------------JDBC中C3PO数据库连接池详解------------------------------ ...

  4. Java JDBC篇3——JDBC事务

    Java JDBC篇3--JDBC事务 1.事务方法 方法声明 功能介绍 void setAutoCommit(boolean autoCommit) 参数是 true 或 false 如果设置为 f ...

  5. Java JDBC篇2——JDBC增删查改

    Java JDBC篇2--JDBC增删查改 url=jdbc:mysql://localhost:3306/test user=root password=blingbling123. driver= ...

  6. JDBC第四篇【数据库连接池、DbUtils框架、分页】(修订版)

    前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 1.数据库连接池 什么是数据库连接池 简单来说:数据 ...

  7. java银行管理系统(MySql+JDBC+数据库(Druid数据库连接池)+GUI)重要代码有解析注释

    java银行管理系统 小白又来水博客了 文章目录 java银行管理系统 一.项目需求与分析: 二.知识及有关技术的概述: 三.银行管理系统需求的具体实现: 四.部分功能预览: 五.Last: 一.项目 ...

  8. dbcp连接池配置详解_JDBC第四篇【数据库连接池、DbUtils框架、分页】(修订版)

    前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 1.数据库连接池 什么是数据库连接池 简单来说:数据 ...

  9. Java中Semaphore(信号量) 数据库连接池

    计数信号量用来控制同时访问某个特定资源的操作数或同时执行某个指定操作的数量 A counting semaphore.Conceptually, a semaphore maintains a set ...

最新文章

  1. paper 38 :entropy
  2. CoinEx将于8月6日开启Spice加速器申购
  3. SQL Server 2012--Reporting Service报表阅览工具 - Power View【转载】
  4. Squid 反向代理服务器配置
  5. Bitcoin 地址原理(1)Base58编码
  6. aspnet是前端还是后端_项目开发中无法回避的问题:前端和后端如何合作和并行工作?...
  7. uva 138——Street Numbers
  8. PHP+Mysql查询上一篇和下一篇文章实例
  9. 第三只眼使用局域网版本还是网络版好_iOS13.4测试版使用3天后,发现3个优化,建议升级!...
  10. 迟到的,2016年终总结
  11. java疯狂讲义笔记整理(第二版第一部分)
  12. pygame学习_part1_pygame写程序前的准备工作
  13. 团队个人每天详细计划汇总
  14. 谷歌浏览器添加扩展程序
  15. 学生宿舍管理系统概要设计说明书
  16. 内网渗透之——域渗透中利用ms-14-068漏洞进行票据伪装获取域管账号密码
  17. 一加9r和一加9pro怎么选
  18. zepto-selector.js简单分析
  19. SCons教程(3) 编译程序
  20. 【编译原理】最小化 DFA

热门文章

  1. [转载] c语言中检查命令行参数_C中的命令行参数
  2. Java Thread类最终同步的void join(long time_in_ms)方法,带有示例
  3. JavaScript中的const
  4. java相关是什么,什么是java
  5. 请检查virtualboxapi是否正确安装_电机行业安装绝缘轴承规范
  6. __asm___错误:“”前应有'=',',',',','asm'或'_attribute_'
  7. 最常见并发面试题整理!(速度收藏)
  8. javascript数字格式化通用类——accounting.js使用
  9. 按钮button加超链接
  10. Maven多模块打包