首页 > 解决方案 > 可以重置参数化SQL吗?

问题描述

我是Parameterized SQL的新手,我要做的是用它更新东西,这很好,但是我有一个(日志)表,其中保存了 Parameterized SQL 作为所发生事件的描述,当我将 Parameterized SQL 插入log_table 它时一直显示“?” 这个符号

保存日志的代码:

    PreparedStatement stat;
    ResultSet rs;
    String sql="insert into rozhanai_log values (null,?,?,?)";
    try
    {
        stat = conn.prepareStatement(sql);
        stat.setString(1,sqlParadanan);//(sqlParadanan) is my parameterized SQL String
        stat.setTimestamp(2,time);
        stat.setString(3,empName);
        stat.execute();
    } 
    catch (Exception e)
    {
        System.out.println("log Nabw");
        e.printStackTrace();
    }

和(日志)表中的 SQL 字符串如下所示:

update rozhanai_customer_account set rozhanai_money_balance = rozhanai_money_balance + 1000.0 where rozhanai_account_id=?

我能在这里做什么?

我正在考虑类似的事情(重新设置参数)?

谢谢

标签: javasqlparameterized-query

解决方案


感谢a_horse_with_no_name的帮助,只需 withPreparedStatement.toString()就可以得到没有任何?符号的 SQL 字符串

    .
    .
    stat.setString(3,empName);
    String fullSQL = stat.toString();
    System.out.println(fullSQL); 
    .
    .
    .

输出 :

com.mysql.jdbc.JDBC4PreparedStatement@6b179d: insert into rozhanai_log values (null,update rozhanai_customer...,2018-05-23,'Hama')

谢谢你


推荐阅读