数据库连接池

1.什么是数据库连接池?

数据库连接池在程序初始化时创建一定数量的数据库连接对象并将其保存在一块内存区中,它允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接以避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。

2.常用连接池

DBCP:DBCP(DataBase connection pool)数据库连接池是apache上的一个 java连接池项目,也是 tomcat使用的连接池组件;单独使用dbcp需要3个包:common-dbcp.jar,common-pool.jar,common-collections.jar.dbcp没有自动回收空闲连接的功能。官网:http://commons.apache.org/proper/commons-dbcp/download_dbcp.cgi

C3P0:C3P0是一个开源的jdbc连接池,它实现了数据源和jndi绑定,支持jdbc3规范和jdbc2的标准扩展。c3p0是异步操作的,缓慢的jdbc操作通过帮助进程完成。扩展这些操作可以有效的提升性能。目前使用它的开源项目有Hibernate,Spring等。c3p0有自动回收空闲连接功能。注: JNDI(Java Naming and Directory Interface,Java命名和目录接口)是SUN公司提供的一种标准的Java命名系统接口。官网:https://sourceforge.net/projects/c3p0/

Druid:

Druid数据库连接池是阿里巴巴开源平台上的一个开源项目,该连接池性能高效,简单SQL语句用时10微秒以内,复杂SQL用时30微秒官网:https://github.com/alibaba/druid

HikariCP:

HikariCP数据库连接池尽管是后起之秀,但却PK掉其它数据库连接池技术,成为目前速度最快的数据库连接池,SpringBoot2.0也已经采用HikariCP作为默认连接池配置。官网:http://brettwooldridge.github.io/HikariCP/

这里我们用的是HikariCP!

3.我们用spring配置连接池

创建xml

数据库连接池_第1张图片






    
    
  

4.这里我们还要配置jar包

数据库连接池_第2张图片

5.我们还需要配置log4j(jar包4中已经包含)

log4j.rootLogger=DEBUG.Console

log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=[%-5p]-[%d{yyyy-MM-dd HH:mm:ss}] -%1 -%m%n

如果输出是这样

一定是上面log4j配置代码写错了,纠结了好长时间。

正确的代码是这样的。

# DEBUG\u8BBE\u7F6E\u8F93\u51FA\u65E5\u5FD7\u7EA7\u522B\uFF0C\u7531\u4E8E\u4E3ADEBUG\uFF0C\u6240\u4EE5ERROR\u3001WARN\u548CINFO \u7EA7\u522B\u65E5\u5FD7\u4FE1\u606F\u4E5F\u4F1A\u663E\u793A\u51FA\u6765
log4j.rootLogger=DEBUG,Console

#\u5C06\u65E5\u5FD7\u4FE1\u606F\u8F93\u51FA\u5230\u63A7\u5236\u53F0
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern= [%-5p]-[%d{yyyy-MM-dd HH:mm:ss}] -%l -%m%n

输出为这样:

数据库连接池_第3张图片

 

补充

出现这样的情况是少jar包(切记)

 

 

 

 

你可能感兴趣的:(数据库连接池)