25.1 复用数据库连接
每次访问数据库都重新建立一个连接是非常耗时并且耗费性能的,因为每次建立连接都会产生一次I/O操作。此时,有必要对数据库的连接进行复用,通常的做法是建立一个数据库连接池,将数据库连接放入数据库连接池中。当应用程序需要访问数据库时,从数据库连接池中获取一个连接进行数据访问,当数据访问完毕后,再将连接放回数据库连接池,这样大大减少了每次创建新数据库连接而造成的资源浪费。
常用的开源数据库连接池有dbcp、c3p0、proxool和Druid。
这里以Druid数据库连接池为例,简单介绍在Spring中如何使用Druid数据库连接池。首先,在项目工程的classpath目录下新建jdbc.properties文件,内容如下:
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/goods?useUnicode=true&characterEncoding=UTF-8&useOldAliasMet
adataBehavior=true
jdbc.username=root
jdbc.password=root
jdbc.initialSize=10
jdbc.minIdle=5
jdbc.maxActive=20
jdbc.maxWait=60000
jdbc.timeBetweenEvictionRunsMillis=60000
jdbc.minEvictableIdleTimeMillis=300000
jdbc.validationQuery=SELECT 'x'
jdbc.testWhileId