Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为大查询生成java准备语句,如查询,或如何在大查询中转义参数_Java_Sql_Google App Engine_Escaping_Google Bigquery - Fatal编程技术网

如何为大查询生成java准备语句,如查询,或如何在大查询中转义参数

如何为大查询生成java准备语句,如查询,或如何在大查询中转义参数,java,sql,google-app-engine,escaping,google-bigquery,Java,Sql,Google App Engine,Escaping,Google Bigquery,我在我的项目中使用大查询,并根据一些用户输入准备一个查询,这些用户输入作为查询中的参数 我们如何才能以最好的方式做到这一点 对于JavaJDBC,我们有,所以我们使用prepared语句 他们是不是像为大查询准备了语句 或者您可以提供一种最佳的方法来转义此用户输入,以便将其添加到大查询的sql查询中大查询不支持预处理语句(或任何类似语句),因此,最有效的解决方案可能是将查询字符串分解成片段,并将它们与用户提供的值连接在一起。连接字符串的最快方法似乎只是使用“+”运算符,而不是浏览这些旧文章:

我在我的项目中使用大查询,并根据一些用户输入准备一个查询,这些用户输入作为查询中的参数

我们如何才能以最好的方式做到这一点

对于JavaJDBC,我们有,所以我们使用prepared语句

他们是不是像大查询准备了语句


或者您可以提供一种最佳的方法来转义此用户输入,以便将其添加到大查询的sql查询中

大查询不支持预处理语句(或任何类似语句),因此,最有效的解决方案可能是将查询字符串分解成片段,并将它们与用户提供的值连接在一起。连接字符串的最快方法似乎只是使用“+”运算符,而不是浏览这些旧文章:


BigQuery现在支持参数化查询。您可以将标识符(如
@param_name
和位置参数)与
一起使用

文档中的Java示例:

String query =
    "SELECT word, word_count\n"
        + "FROM `bigquery-public-data.samples.shakespeare`\n"
        + "WHERE corpus = @corpus\n"
        + "AND word_count >= @min_word_count\n"
        + "ORDER BY word_count DESC";
// Note: Standard SQL is required to use query parameters.
QueryJobConfiguration queryConfig =
    QueryJobConfiguration.newBuilder(query)
        .addNamedParameter("corpus", QueryParameterValue.string(corpus))
        .addNamedParameter("min_word_count", QueryParameterValue.int64(minWordCount))
        .build();

为什么您首先需要转义用户输入?听起来您正在使用BigQuery作为传统的RDBMS。您可以检查如何转义用户输入。在进行sql查询时,我们需要一些用户输入,以根据他们想要的最佳结果过滤结果。所以我希望投入不会产生任何问题。现在我正在使用StringEscapeUtils.escapeJavaScript。它与googleBigqueryBigQuery的规则相同,现在支持参数化查询-请查看我的回复。