java - 用于 SQL 查询的 String 或 StringBuilder

标签 java mysql sql

我正在做我的项目,现在我对 SQL 查询有疑问;是否可以将整个查询放入 String 中,或者即使查询是静态的(它不包含任何变量),最好使用 StringBuilder

private void createTheExpectedData() throws SQLException {
        String query = "SELECT products.productname, orderdetails.quantityordered, orderdetails.priceEach "
                + "FROM orderdetails "
                + "INNER JOIN products "
                + "ON orderdetails.productcode = products.productcode";
        resultSet = db.testClassQuery(query);

最佳答案

它们在这里是等价的,因为 Java 使用 StringBuilder 执行 String 连接(无论如何从 Java 5 开始)。 但是,由于查询是静态的,我建议将其移动到静态常量。那么您真的不必担心该连接是否会花费太多时间。或者在每次调用时创建临时 String 实例。

private static final String CREATE_QUERY = "SELECT products.productname, "
            + "orderdetails.quantityordered, orderdetails.priceEach "
            + "FROM orderdetails "
            + "INNER JOIN products "
            + "ON orderdetails.productcode = products.productcode";

private void createTheExpectedData() throws SQLException {
    resultSet = db.testClassQuery(CREATE_QUERY);
    // ...
}

关于java - 用于 SQL 查询的 String 或 StringBuilder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61461693/

相关文章:

mysql - 如何仅从 MySQL 查询中获得积极结果?

java - 比 Sun WTK 更好的预 validator

sql - Teradata BTEQ : IF conditon , 使用运行时实际参数验证 SP 编译并导出 DDL

mysql - 创建一个列,该列只允许以 “@tal.com” 结尾的值

mysql - 设计一个表结构

mysql - 在 Ruby on Rails 应用程序中将数据库从 PostgreSQL 更改为 MySQL

mysql - 我如何进行此 mysql `SELECT` 查询?

java - Spring 异常转换不适用于 JPA

java - String.equals比较失败

java - List<String> 减去 List<String>