- 概述:我们访问数据库要频繁的建立连接和关闭连接,会是系统资源的浪费,这时候可是使用一个Connection的连接池来管理这些连接,我们需要建立连接的时候通过连接池索要连接,不用到的连接由连接池回收,并不是真正的关闭,而是实现了动态管理。
- 常用连接池:DBCP(tomcat内置),PO3
- 规范:Java为数据库连接池提供了公共的接口:javax.sql.DataSource,各个厂商需要让自己的连接池实现这个接口。这样应用程序可以方便的切换不同厂商的连接池
创建工具类
public class DBCPDemo { //创建连接池 public static final String DRIVER = "com.mysql.jdbc.Driver"; public static final String URL = "jdbc:mysql://localhost:3306/mybase"; public static final String USERNAME = "root"; public static final String PASSWORD = "123456"; public static BasicDataSource dataSource=new BasicDataSource(); static{ //对连接池对象 进行基本的配置 dataSource.setDriverClassName(DRIVER); // 这是要连接的数据库的驱动 dataSource.setUrl(URL); //指定要连接的数据库地址 dataSource.setUsername(USERNAME); //指定要连接数据的用户名 dataSource.setPassword(PASSWORD); //指定要连接数据的密码 } public static DataSource getDataSource(){ //通过该函数获取连接池对象 return dataSource; } }
测试代码
public class test { public static void main(String[] args) { query(); } private static QueryRunner qr=new QueryRunner(DBCPDemo.getDataSource()); public static void query(){ String sql="select * from sort"; try{ List<Object []> result=qr.query(sql, new ArrayListHandler()); for(Object[] obj:result){ for(Object o:obj){ System.out.print(o); } System.out.println(); } }catch(SQLException ex){ ex.printStackTrace(); } } }
结果: