Java面试题更新 2026-08-05

你之前是否研究过 MyBatis 框架自身提供的连接池实现?

后端开发技术原理MyBatis

考察说明

考查对 MyBatis 内置连接池机制的理解程度。

回答思路

  1. 【回答框架 1】MyBatis 自带连接池是 PooledDataSource,它通过维护空闲连接和活跃连接两个容器来复用数据库连接,减少频繁创建和销毁连接的开销。
  2. 【回答框架 2】连接池内部使用 PoolState 记录状态,通过 PooledConnection 包装实际连接,并利用代理机制在连接关闭时将其归还到空闲列表,而不是真正关闭物理连接。
  3. 【回答框架 3】连接池有最大活跃连接数、最大空闲连接数和最大等待时间等配置参数,当请求连接时优先从空闲列表获取,若无空闲且未达上限则新建,否则等待或抛出异常。
  4. 【回答框架 4】与第三方连接池如 Druid、HikariCP 相比,MyBatis 自带连接池功能较简单,适合小型项目或学习场景,生产环境通常建议使用更成熟的连接池。
  5. 【回答框架 5】使用自带连接池时需注意连接泄漏问题,确保每次使用后正确关闭连接,否则会导致连接耗尽。
  6. 【关键点 1】PooledDataSource 是 MyBatis 内置连接池的核心实现。
  7. 【关键点 2】连接池通过空闲和活跃列表管理连接,关闭连接时归还而非物理关闭。
  8. 【关键点 3】配置参数包括最大活跃数、最大空闲数和最大等待时间。
  9. 【关键点 4】自带连接池功能简单,生产环境更推荐 Druid 或 HikariCP。
  10. 【关键点 5】使用不当易造成连接泄漏,需确保连接正确关闭。
  11. 【易错点 1】不要将连接池的复用机制等同于业务幂等,连接复用不保证事务隔离。
  12. 【易错点 2】连接池参数设置需结合实际并发量,过小会导致等待,过大会浪费资源。
  13. 【易错点 3】避免在代码中手动关闭物理连接,应通过代理关闭归还连接池。