连接池笔记

池化技术:准备一些预先的资源,过来就是连接预先准备好的

最小连接数:10

最大连接数:15

等待超时:100ms

编写连接池,实现一个接口DataSource

开源数据源实现

DBCP

 1  package com.study.day04;
 2  3  import com.study.day02.utils.JdbcUtils;
 4  import com.study.day04.utils.JdbcUtils_dbcp;
 5  6  import java.sql.Connection;
 7  import java.sql.ResultSet;
 8  import java.sql.SQLException;
 9  import java.sql.Statement;
10 11  public class TestDbcp {
12      public static void main(String[] args) {
13          Connection conn = null;
14          Statement st = null;
15          ResultSet rs = null;
16          try {
17              conn = JdbcUtils_dbcp.getConnection();//获取数据库连接
18              st = conn.createStatement();//获取SQL的执行对象
19              String sql = "INSERT INTO users(`id`,`name`,`password`,`email`,`birthday`)" +
20                      "VALUES(4,'kuangshen','123456','2784234567@qq.com','2022-01-01')";
21              int i = st.executeUpdate(sql);
22              if(i>0){
23                  System.out.println("插入成功!");
24              }
25          } catch (SQLException e) {
26              e.printStackTrace();
27          }finally {
28              JdbcUtils_dbcp.release(conn,st,rs);
29          }
30 31 32      }
33  }

C3P0

 1  package com.study.day04;
 2  3  import com.study.day04.utils.JdbcUtils_C3p0;
 4  import com.study.day04.utils.JdbcUtils_dbcp;
 5  6  import java.sql.Connection;
 7  import java.sql.ResultSet;
 8  import java.sql.SQLException;
 9  import java.sql.Statement;
10 11  public class TestC3p0 {
12      public static void main(String[] args) {
13          Connection conn = null;
14          Statement st = null;
15          ResultSet rs = null;
16          try {
17              conn = JdbcUtils_C3p0.getConnection();//获取数据库连接
18              st = conn.createStatement();//获取SQL的执行对象
19              String sql = "INSERT INTO users(`id`,`name`,`password`,`email`,`birthday`)" +
20                      "VALUES(5,'bajie','123456','2784234567@qq.com','2022-01-01')";
21              int i = st.executeUpdate(sql);
22              if(i>0){
23                  System.out.println("插入成功!");
24              }
25          } catch (SQLException e) {
26              e.printStackTrace();
27          }finally {
28              JdbcUtils_C3p0.release(conn,st,rs);
29          }
30 31 32      }
33  }

Druid:阿里巴巴

使用了连接数据库连接池之后,我们在项目开发中就不需要编写连接数据库的代码了。

结论

无论使用什么数据源,本质还是一样的,DataSource接口不会变

posted @ 2022-04-08 16:24  冰山醉酒  阅读(92)  评论(0)    收藏  举报