如何打印此OracleCallableStatement?
ocstmt = (OracleCallableStatement) connection.prepareCall("{?= call
package.method(id => ?, name=>?)}");
ocstmt.registerOutParameter(1, OracleTypes.CURSOR);
ocstmt.setInt(2, obj.getId());
ocstmt.setString(3, obj.getName());
ocstmt.execute();
resultSet = ocstmt.getCursor(1);
Run Code Online (Sandbox Code Playgroud)
我的意思是我怎么知道什么查询进入数据库,我该如何打印查询?因为有时它会给我一些错误,比如"错误的类型",这就是为什么我要查看这个查询
您正在使用log4j吗?
如果是这样,请添加如下所示的sql记录器。
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG
Run Code Online (Sandbox Code Playgroud)
如果使用的是ibatis之类的ORM框架,则可以添加如下所示的其他记录器。
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
Run Code Online (Sandbox Code Playgroud)
您无法通过打印Statement 来获取SQL。
您发布的示例是触发错误的“有时”之一吗?
为什么必须将其放入 OracleCallableStatement 中?调用的哪一部分不是标准的 CallableStatement?
| 归档时间: |
|
| 查看次数: |
23929 次 |
| 最近记录: |