当前位置: 首页 > article >正文

连接池介绍

1. 连接池的作用

在JDBC请求MySQL数据库的SQL操作都要进行连接、释放的过程,在并发量大请情况下,频繁的连接和释放势必会消耗系统性能,可以使用连接复用的方式来让连接重复使用。

2. 连接池工作原理

数据库连接池的基本思想为数据连接简历一个缓冲池,预先在池中放入一定数量的连接,当有数据库操作时,在池中获取一个空闲的连接来支持数据库操作,当当前的数据库操作完成之后,将连接放回池中。

3. 连接池的优势

  1. 资源复用
  2. 更快的响应速度
  3. 新的资源分配手段
  4. 统一的连接关系,避免数据库连接泄漏

4. 连接池的使用

  1. 导入连接
  2. 参数配置
  3. 通过连接池获取连接
  4. 进行SQL操作

5.操作

连接池有:c3p0、dbcp、Druid等。

以C3p0为例讲解:

5.1 引入c3p0的依赖

        <!--c3p0连接池--><dependency><groupId>com.mchange</groupId><artifactId>c3p0</artifactId><version>0.9.5.2</version></dependency>

5.2 给定c3p0的配置文件:c3p0-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config><!--配置连接池mysql--><named-config name="mysql"><property name="driverClass">com.mysql.jdbc.Driver</property><property name="jdbcUrl">jdbc:mysql://localhost:3306/ssms</property><property name="user">root</property><property name="password">123456</property><!-- 初始化连接数 --><property name="initialPoolSize">10</property><!--最大空闲时间,多少秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 --><property name="maxIdleTime">30</property><!--连接池中保留的最大连接数。Default: 15 --><property name="maxPoolSize">100</property><!-- 最小连接数 --><property name="minPoolSize">10</property></named-config>
​
</c3p0-config>

5.3 连接池编码:

        //设置数据源DataSourceComboPooledDataSource dataSource = new ComboPooledDataSource("mysql");
​try {//获取ConnectionConnection connection = dataSource.getConnection();
​//获取Statement对象Statement statement = connection.createStatement();
​String sql = "select * from user where id = 25";ResultSet resultSet = statement.executeQuery(sql);
​while (resultSet.next()) {Integer id1 = resultSet.getInt("id");String account = resultSet.getString("account");String name = resultSet.getString("name");System.out.println("Id:" + id1 + ",name:" + name);}
​} catch (SQLException e) {e.printStackTrace();}}

http://www.lryc.cn/news/2417072.html

相关文章:

  • 【SD卡修复】使用SDFormatter工具
  • 莱顿弗罗斯特效应
  • 股指期权是什么?
  • Oracle 数据库新手指南(一) Oracle基础
  • clientHeight、offsetHeight、innerHeight、ouerHeight 区别
  • Python桌面应用开发GTK3 Glade GTK主题
  • 第一篇:nutz初步了解
  • DCOM揭秘
  • Debian安装全攻略
  • 本地安全策略
  • computed侦听的值可以在watch和methods中引用并赋值
  • 关于调试错误 Assertion Failed 问题
  • 彻底弄懂计算机中的大端小端
  • java.分页上一页下一页算法_一个方便的java分页算法
  • 颜色六位码和八位码表示
  • OPAC (Optical Properties of Aerosols and Clouds) v4.0编译及测试
  • 三层架构
  • JSTL(Java 标准标签库)
  • FPGA设计文档中常见的几个英文拼写错误
  • js中setTimeout和clearTimeout的使用
  • css教学 css基础
  • 开源自动化测试工具MeterSphere
  • 企业邮件系统管理(二)配置与优化指南
  • C#中 MD5加密的实现
  • java代码实现爬虫功能
  • webapp的介绍,以及浅述webapp的技术选型的看法,和cordova的简述
  • i386/i686/x86-64的区别
  • 高性能并行计算:从计算节点到网络
  • 交互设计与人工智能的融合:未来的潜力和挑战
  • 布隆过滤器:基于哈希函数的原理、应用解析