private StringBuilder getSql()

in src/main/java/com/aliyun/ha3engine/jdbc/Ha3PreparedStatement.java [108:166]


    private StringBuilder getSql(String sql) throws Ha3DriverException {
        StringBuilder sqlBuilder = new StringBuilder();
        sqlBuilder.append(sql);

        if (null != sqlAndParams) {
            String kvpairs = String.valueOf(sqlAndParams[0]).replaceAll("\'", "");
            if ("null".equals(kvpairs)) {
                kvpairs = "";
            }
            List<Object> values = new ArrayList<>();
            for (int i = 1; i < sqlAndParams.length; i++) {
                values.add(sqlAndParams[i]);
            }

            if (values.size() > 0) {
                // 替换
                if (kvpairs.contains("dynamic_params:dynamic_params")) {

                    String dynamicParams = this.replaceJsonDynamicParams(values);
                    dynamicParams = JsonUtils.string2Unicode(dynamicParams);
                    if (kvpairs.contains("urlencode_data")) {
                        try {
                            kvpairs = new StringBuilder(
                                kvpairs.replace("dynamic_params:dynamic_params",
                                    new StringBuilder().append("dynamic_params:").append(URLEncoder.encode(dynamicParams,ENCODING))))
                                .toString();
                        } catch (UnsupportedEncodingException e) {
                            e.printStackTrace();
                        }
                    } else {
                        kvpairs = new StringBuilder(
                            kvpairs.replace("dynamic_params:dynamic_params",
                                new StringBuilder().append("dynamic_params:").append(dynamicParams)))
                            .toString();
                    }

                } else {
                    StringBuilder kvPairs = new StringBuilder(kvpairs);
                    if ("" == kvpairs) {
                        kvpairs = kvPairs.append("dynamic_params:").append(this.replaceDynamicParams(values)).toString();
                    } else {
                        kvpairs = kvPairs.append(";").append("dynamic_params:").append(this.replaceDynamicParams(values)).toString();
                    }

                }
            }
            if (!sql.contains("&&kvpair=")) {
                sqlBuilder.append("&&kvpair=").append(kvpairs);
            } else {
                if (sql.endsWith(";")) {
                    sqlBuilder.append(kvpairs);
                } else {
                    sqlBuilder.append(";").append(kvpairs);
                }
            }

        }
        return sqlBuilder;
    }