private String generateInsertSql()

in adb2client/src/main/java/com/alibaba/cloud/analyticdb/adbclient/AdbClient.java [626:659]


    private String generateInsertSql(String tableName, Connection connection, Row record) throws SQLException {
        String sql = null;
        StringBuilder sqlSb = new StringBuilder();
        sqlSb.append(this.insertSqlPrefix.get(tableName));
        sqlSb.append("(");
        int columnsSize = this.databaseConfig.getColumns(tableName).size();
        for (int i = 0; i < columnsSize; i++) {
            if ((i + 1) != columnsSize) {
                sqlSb.append("?,");
            } else {
                sqlSb.append("?");
            }
        }
        sqlSb.append(")");
        //mysql impl warn: if a database access error occurs or this method is called on a closed connection
        PreparedStatement statement = connection.prepareStatement(sqlSb.toString());
        for (int i = 0; i < this.databaseConfig.getColumns(tableName).size(); i++) {
            String columnName = this.databaseConfig.getColumns(tableName).get(i);
            int columnSqltype = this.configColumnsMetaData.get(tableName).get(columnName).getLeft();
            if (record.getColumnValues().get(i) == null) {
                if (this.tableInfo.get(tableName).getColumns().get(i).getDefaultValue() != null) {
                    prepareColumnTypeValue(statement, columnSqltype, this.tableInfo.get(tableName).getColumns().get(i).getDefaultValue(), i, columnName, tableName);
                } else {
                    prepareColumnTypeValue(statement, columnSqltype, null, i, columnName, tableName);
                }
            } else {
                prepareColumnTypeValue(statement, columnSqltype, record.getColumnValues().get(i).toString(), i, columnName, tableName);
            }
        }
//        sql = ((JDBC4PreparedStatement) ((DruidPooledPreparedStatement) statement).getRawPreparedStatement()).asSql();
        sql = statement.unwrap(com.mysql.jdbc.PreparedStatement.class).asSql();
        closeDBResources(null, statement, null);
        return sql;
    }