我想知道为什么Sql2o只允许创建一个新的,以事务为中心的连接,而不是在已有的连接上运行事务。
据我所知,没有理由不能将相同的连接用于一次性自动提交查询以及事务。相反,API的编写方式使得连接可以支持多个connection.createQuery()
或单个事务(通过调用sqlo2.beginTransaction()
)。
创建新连接相对昂贵。使事务依赖于创建新连接也会阻止使用连接池。在可用性方面甚至没有明显的优势,因为Sql2o.open()
和Sql2o.beginTransaction()
都返回相同的Connection
对象(所以非事务Connection
也是如此具有commit
和rollback
方法。
任何人都可以解释一下吗?