[size=large][color=darkblue]
和同事一块定位一个问题的时候,打印出来的sql是对的,但是执行的不对,由于使用的是namedParameter,所有不是真实执行的sql,最终调试发现,在AbstractBatcher类里面
在真正的执行sql语句:[/color][/size]
[size=large][color=darkblue]
如下图所示,com.mchange.v2.c3p0.impl.NewProxyResultSet对象持有的creator的toString方法打印出了sql,当然了dialect不同,可能不是所有的数据库dialect都能拿到sql,但是大同小异。
:[/color][/size]
[img]http://dl.iteye.com/upload/attachment/0070/4054/dcfa042e-b1ea-33b3-99b1-163ad681fea1.png[/img]
和同事一块定位一个问题的时候,打印出来的sql是对的,但是执行的不对,由于使用的是namedParameter,所有不是真实执行的sql,最终调试发现,在AbstractBatcher类里面
在真正的执行sql语句:[/color][/size]
public ResultSet getResultSet(PreparedStatement ps) throws SQLException {
ResultSet rs = ps.executeQuery();
resultSetsToClose.add(rs);
logOpenResults();
return rs;
}
[size=large][color=darkblue]
如下图所示,com.mchange.v2.c3p0.impl.NewProxyResultSet对象持有的creator的toString方法打印出了sql,当然了dialect不同,可能不是所有的数据库dialect都能拿到sql,但是大同小异。
:[/color][/size]
[img]http://dl.iteye.com/upload/attachment/0070/4054/dcfa042e-b1ea-33b3-99b1-163ad681fea1.png[/img]