微信登录

JDBC - 连接池 - DBCP - 速度快、有bug

lib引入文件

commons-dbcp-1.4.jar
commons-pool-1.5.5.jar

测试

  1. package com.atguigu4.connection;
  2. import java.io.File;
  3. import java.io.FileInputStream;
  4. import java.sql.Connection;
  5. import java.sql.SQLException;
  6. import java.util.Properties;
  7. import javax.sql.DataSource;
  8. import org.apache.commons.dbcp.BasicDataSource;
  9. import org.apache.commons.dbcp.BasicDataSourceFactory;
  10. import org.junit.Test;
  11. public class DBCPTest {
  12. /**
  13. *
  14. * @Description 测试DBCP的数据库连接池技术
  15. * @author shkstart
  16. * @throws SQLException
  17. * @date 下午3:20:50
  18. */
  19. //方式一:不推荐
  20. @Test
  21. public void testGetConnection() throws SQLException{
  22. //创建了DBCP的数据库连接池
  23. BasicDataSource source = new BasicDataSource();
  24. //设置基本信息
  25. source.setDriverClassName("com.mysql.jdbc.Driver");
  26. source.setUrl("jdbc:mysql:///test");
  27. source.setUsername("root");
  28. source.setPassword("abc123");
  29. //还可以设置其他涉及数据库连接池管理的相关属性:
  30. source.setInitialSize(10);
  31. source.setMaxActive(10);
  32. //。。。
  33. Connection conn = source.getConnection();
  34. System.out.println(conn);
  35. }
  36. //方式二:推荐:使用配置文件
  37. @Test
  38. public void testGetConnection1() throws Exception{
  39. Properties pros = new Properties();
  40. //方式1:
  41. // InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("dbcp.properties");
  42. //方式2:
  43. FileInputStream is = new FileInputStream(new File("src/dbcp.properties"));
  44. pros.load(is);
  45. DataSource source = BasicDataSourceFactory.createDataSource(pros);
  46. Connection conn = source.getConnection();
  47. System.out.println(conn);
  48. }
  49. }

配置文件

dbcp.properties

  1. driverClassName=com.mysql.jdbc.Driver
  2. url=jdbc:mysql:///test
  3. username=root
  4. password=abc123
  5. initialSize=10

使用

放在JDBCutil.java
不会关掉连接池

  1. //创建一个DBCP数据库连接池
  2. private static DataSource source;
  3. static{
  4. try {
  5. Properties pros = new Properties();
  6. FileInputStream is = new FileInputStream(new File("src/dbcp.properties"));
  7. pros.load(is);
  8. source = BasicDataSourceFactory.createDataSource(pros);
  9. } catch (Exception e) {
  10. e.printStackTrace();
  11. }
  12. }
  13. public static Connection getConnection2() throws Exception{
  14. Connection conn = source.getConnection();
  15. return conn;
  16. }
JDBC - 连接池 - DBCP - 速度快、有bug