JDBC连接池主要是用来管理Connnection, Statement, ResultSet这些对象,只不过用户得到的是它们的代理对象而已(这些对象的管理需要仿真驱动实现),这些代理对象也是要遵循JDBC接口规范, 而这些原生对象是通过JDBC驱动来构建的, 那么我们来看看这些对象在驱动内部是如何被构建的呢? 以MySQL驱动( mysql-connector-java-5.1.48.jar )为例, 第一步: 解压Jar包: 首先用Winrar工具来解压包 第二步: 找到驱动类所在目录 第三步: 找到包下的 Connnection, Statement, ResultSet 实现类 第四步: 使用鼠标将这三个类拖Idea中,将自动被反编译 第五步: 看看Connection是如何创建Statement 和PreparedStatement StatementImpl stmt = new StatementImpl( this .getMultiHostSafeProxy(), this .database); * 驱动本身支持PreparedStatement缓存 再来看看是如何关闭的(Close) 同步方法关闭 连接关闭时,自动关闭被它打开过的 Statement,PreparedStatement,CallableStatement 第六步: 看看Statement