2 u010468993 u010468993 于 2016.05.10 17:33 提问

获得经过PreparedStatement设置参数的完整SQL语句

普通JDBC过程。
在写SQL之后。用PreparedStatement设置的参数。
如select * from table where id = ?
PreparedStatement.setInt(1,1);

那么真正的SQL就变成了select * form table where id = 1;

我如何在代码中获得经过ps设置参数之后的完整的可直接在数据库运行的SQL语句。

4个回答

rui888
rui888   Ds   Rxr 2016.05.10 17:36

这个不可以的 的你是PreparedStatement 预编译 http://www.iteye.com/problems/32029

SHENQUANYU
SHENQUANYU   2016.05.10 17:45
goodchun168
goodchun168   2017.02.26 15:33

是可以获取的——

import java.io.PrintStream; //为了第二句能用
System.setOut(new PrintStream("D:/PrintStream.txt")); //这样才方便看到输出结果
System.out.println(pstmt); //结果会是下面这样:

com.mysql.jdbc.JDBC4PreparedStatement@b36c37: insert into userinfo(username,password) values('myName','123456')

最终的结果是pstmt.executeUpdate(sql);语句不能正确执行!感觉多了前半部,即com.mysql.jdbc.JDBC4PreparedStatement@b36c37:

qq_37882286
qq_37882286   2017.08.06 15:24

教你一招最简单的,把设置完参数后的PreparedStatement对象打印以下就知道了
com.mysql.jdbc.JDBC42PreparedStatement@134894: delete from emp where id=4;
然后从冒号截取字符串就可以了

qq_37882286
qq_37882286 这个可以
4 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!