用preparedstatement执行的sql语句
insert into isp (isp_id,node,weight,dt) values(?,?,?,?);我想打印补充全的sql怎么做?
我有想法是把参数在string里拼起来这个太傻了吧,:)有没有其他的方法?求高手指点

解决方案 »

  1.   


    insert into isp (isp_id,node,weight,dt) values(?,?,?,?);
    后面的一个问号不就代表一个值嘛,你往里面设值。所设的值你肯定知道是什么啊.干嘛还要打印SQL呢?
      

  2.   

    你可以把你的查询条件值输出到日志中去,并不要把一个 SQL 语句弄到日志中去的。
      

  3.   

    你拼个sql语句写到日志里或则采用火龙果的意见只把参数记录到日志中去,不一定要将完整的SQL语句搞到日志里
      

  4.   

    我还是自己拼了。。
    写了段代码。。大家看看,能优化不public static String fillSQL(String sql, String... parameters) {
    String ret = "";
    char[] ss = sql.toCharArray();
    int i = 0;
    for (char s : ss) {
    if (s == '?') {
    ret = ret + "'" + parameters[i] + "'";
    i++;
    continue;
    }
    ret = ret + s;
    }
    return ret;
    }
      

  5.   

    把要打印的信息放到日志里打印的信息除了preparedStatement的SQL之外把参数也打印出来,分两行,SQL一行
    参数在下面那行,用逗号分隔。貌似很多都是这么干的
      

  6.   

    要对参数为Number类型做优化、、、