日期:2014-05-17  浏览次数:20788 次

打印出jdbc最终执行的sql语句,但是失败(就是看看问号是什么东西,便于分析错误)
本帖最后由 bonlog 于 2013-04-08 14:39:53 编辑
		public static void executeUpdate(String sql,String [] parameters){
//1.ps
try {

ps=getConnection().prepareStatement(sql);
if(parameters !=null){
for(int i=0;i<parameters.length;i++){
ps.setString(i+1,parameters[i]);
}
System.out.println(sql);
}//if
ps.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();

throw new RuntimeException(e.getMessage());
}finally{
close(rs,ps,ct);
}
}


以上的,sqlhelper中的执行insert部分,
为何我把System.out.println(sql);放在任何地方,都会打印出来INSERT INTO ORDER_INFO (ID,ORDERNUMBER,CUSTOMERORDER,SUPPLIER,CUSTOMER,EXPECTEDIN,EXPECTEDOUT,CUSTOMERCREATED,RECEIVEDATE,CUSTOMERREMARK,OTHERS,OTHERS2,OTHERS3,OTHERS4,TOTALPCS,TOTALQTY,TOTALCBM,TOTALWEIGHT,TOTALPRICE,REMARK,OPERATOR)  VALUES (ORDER_SEQ.nextval,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)

我要的是最终的执行sql
谢谢

------解决方案--------------------
preparedstatement本来就是用占位符?的
------解决方案--------------------
jdk自带的jdbc采用预编译语句PreparedStatement。而关于这个说明可以在网上搜到很多
http://hi.baidu.com/tjbaso/item/443d401dc87680fb65eabfb1
如果想要查看jdbc日志log可以借助jdbcdslog ,jdbcdslog 是一款用来跟踪 JDBC 的全功能工具,记录带有详细参数值的SQL。
参考官网:http://code.google.com/p/jdbcdslog/wiki/UserGuide
好好学习吧
------解决方案--------------------
引用:
本帖最后由 bonlog 于 2013-04-08 14:39:53 编辑


Java code
?



123456789101112131415161718192021

    public static void executeUpdate(String sql,String [] parameters){     //1.ps     try {         ……

加断点直接看sql也是显示“?”的?
------解决方案--------------------
不明白问题。。