为减小系统对数据库的获取连接和关闭连接的开销,连接池便是一个不错的选择
- 将DataSource封装成一个工具类,使用时调用即可
package com.kong.JDBCUtils; import org.apache.commons.dbcp.BasicDataSource; import javax.sql.DataSource; import java.io.IOException; import java.io.InputStream; import java.util.Properties; /** * 使用了properties+连接池; * 推荐使用此类获取dataSource方法 */ public class JDBCUtils { private static BasicDataSource basicDataSource = new BasicDataSource(); private static String driverName; private static String url; private static String username; private static String password; static{ InputStream inputStream = JDBCUtils.class.getClassLoader().getResourceAsStream("database.properties"); Properties properties = new Properties(); try { properties.load(inputStream); } catch (IOException e) { throw new RuntimeException(e+"读取配置文件失败"); } driverName = properties.getProperty("driver"); url = properties.getProperty("url"); username = properties.getProperty("name"); password = properties.getProperty("password"); //设置DataSource基本信息 basicDataSource.setDriverClassName(driverName); basicDataSource.setUrl(url); basicDataSource.setUsername(username); basicDataSource.setPassword(password); //设置DataSource其他连接信息 basicDataSource.setInitialSize(10);//初始化的连接数 basicDataSource.setMaxActive(8);//最大的连接数 basicDataSource.setMaxIdle(5);//最大空闲数 basicDataSource.setMinIdle(1);//最小空闲数 } public static DataSource getbasicDataSource(){ return basicDataSource; } }
- 调用
public class DBUtilsLinkDemo { public static void main(String[] args) throws IOException { try { Connection connection = JDBCUtils.getbasicDataSource().getConnection(); System.out.println(connection); } catch (SQLException e) { throw new RuntimeException(e+"database connect fail"); } } }
- 结果
^_^