C3P0 rawStatementOperation 用法

C3P0 rawStatementOperation usage

我在我的项目中使用 C3P0 连接池。

我在 C3P0ProxyStatement 中遇到了下面的方法,

C3P0ProxyStatement pStmt = (C3P0ProxyStatement) stmt;
pStmt.rawStatementOperation(..,..);

请帮我解决以下疑惑,

这个c3p0中的rawStatementOperation有什么用?

为什么这个语句将reflect API方法作为参数?

使用它会影响性能吗?

人们最近很少使用此 API,更喜欢 JDBC4 标准 unwrap(...) 来访问本机语句和连接。

是的,这个特定于 c3p0 的 API 是反射性的(它比解包更安全,因为 c3p0 将跟踪并尝试清理一些可能返回的 JDBC 资源)。反射方法调用的成本相对于普通方法调用来说很高,但相对于数据库操作的成本可以忽略不计。它不会对性能产生有意义的影响。