欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

得PreparedStatement向数据库提交的SQL语句 SQL 

程序员文章站 2024-02-21 17:46:52
...

/**

 * 获得PreparedStatement向数据库提交的SQL语句

 *

 * @param sql:带占位符?的原始sql

 * @param params:参数数组

 * @return:要执行的sql语句

 */

public static String getPreparedSQL(String sql, Object[] params) {

       

        // 1 如果没有参数,说明是不是动态SQL语句

        int paramNum = 0;

        if (null != params)

               paramNum = params.length;

       if (1 > paramNum)

              return sql;

 

        // 2 如果有参数,则是动态SQL语句

       StringBuffer returnSQL = new StringBuffer();

 

       String[] subSQL = sql.split("\\?");

 

       for (int i = 0; i < paramNum; i++) {

              if (params[i] instanceof Integer) {

                     returnSQL.append(subSQL[i]).append(" ").append(params[i]) .append(" ");

              } else if (params[i] instanceof Date) {

                     returnSQL.append(subSQL[i]).append(" '").append( DateUtils.strDateFormat((java.util.Date) params[i])) .append("' ");

              } else {

                     returnSQL.append(subSQL[i]).append(" '").append(params[i]) .append("' ");

              }

}

相关标签: SQL