普通JDBC过程。
在写SQL之后。用PreparedStatement设置的参数。
如select * from table where id = ?
PreparedStatement.setInt(1,1);
那么真正的SQL就变成了select * form table where id = 1;
我如何在代码中获得经过ps设置参数之后的完整的可直接在数据库运行的SQL语句。
教你一招最简单的,把设置完参数后的PreparedStatement对象打印以下就知道了
com.mysql.jdbc.JDBC42PreparedStatement@134894: delete from emp where id=4;
然后从冒号截取字符串就可以了
这个不可以的 的你是PreparedStatement 预编译 http://www.iteye.com/problems/32029
用LOG4j可以实现http://www.cnblogs.com/xdp-gacl/p/4081848.html
是可以获取的——
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: