海南省城乡建设厅网站,注册完域名 如何做网站,山东网站搭建有限公司,网站泛目录怎么做关于学习Spring框架时重构DAO层时#xff0c;遇到的QueryRunner构造方法的问题#xff0c;回忆MySQL中DBUtils部分 1. 空参构造方法 new QueryRunner()
特点#xff1a; 不绑定数据源#xff1a;QueryRunner 实例内部没有 DataSource#xff0c;因此无法自动获取连接。 …关于学习Spring框架时重构DAO层时遇到的QueryRunner构造方法的问题回忆MySQL中DBUtils部分 1. 空参构造方法 new QueryRunner()
特点 不绑定数据源QueryRunner 实例内部没有 DataSource因此无法自动获取连接。 手动管理连接调用者必须自行获取 Connection并在执行数据库操作时显式传入。
底层机制 当调用 query() 或 update() 方法时QueryRunner 发现自身没有 DataSource会强制要求调用者提供 Connection。 2. 带数据源的构造方法 new QueryRunner(DataSource ds)
特点 绑定数据源QueryRunner 实例持有 DataSource可自动管理连接的获取和释放。 自动管理连接每次操作时QueryRunner 会从 DataSource 获取新连接操作完成后自动关闭连接。
底层机制 当调用 query() 或 update() 方法时QueryRunner 通过 DataSource.getConnection() 获取连接并在 finally 块中关闭连接。
关键对比
特性空参构造 new QueryRunner()带数据源构造 new QueryRunner(DataSource ds)连接来源必须由调用者显式传入 Connection自动从 DataSource 获取新连接连接管理手动控制开启、提交、回滚、关闭自动获取和关闭连接事务支持✅ 支持同一连接多次操作❌ 不支持每次操作独立连接资源泄漏风险需谨慎处理 Connection 关闭无风险自动关闭代码复杂度较高需自行管理连接较低简化代码 总结 空参构造 显式传 Connection的 QueryRunner 适用于需要手动控制事务的场景但需自行管理连接。 带数据源构造的 QueryRunner 适用于无事务需求的简单操作自动化程度更高。