【问题标题】:Creating Dynamic SELECT query using simple JDBC使用简单 JDBC 创建动态 SELECT 查询
【发布时间】:2014-02-19 20:37:07
【问题描述】:

我想动态创建 SELECT 查询。想要动态地将列添加到 SELECT 查询中。 如果有任何方法可以通过使用普通的 JDBC 来做到这一点。

我尝试通过检查非空值来使用 Table Bean 类创建相同的内容, 豆豆=新豆(); bean.setAttribute1("AAA");

然后 在 DN 管理器类中

if (bean.attribute1 != null) {
 append("COLUMN_1")
}

从结果集加载时类似

if (bean.attribute1 != null) {
 rs.getString("COLUMN_1");
}

但是这个解决方案涉及很多 if else 条件。 假设如果 bean 中有 50 个属性,那么这意味着 100 个 if else 条件 50 用于创建查询,50 用于从结果集中加载。

有人可以建议我一个更简单的解决方案吗?

【问题讨论】:

    标签: java sql jdbc


    【解决方案1】:

    java.sql.DatabaseMetadata 可能有助于动态生成有效的查询(例如插入、按主键更新)。 java.sql.ResultSetMetadata 可用于查询自省(选择)。

    【讨论】:

    • 我想动态创建 SELECT 查询
    • 我认为它无论如何都会太复杂,但模板引擎可以提供帮助(Velocity 是一个非常成熟的工具)见这里的用法示例cayenne.apache.org/docs/3.0/scripting-sqltemplate.html
    • 没有其他简单的方法吗?
    • 在我的实践中生成动态 SQL 总是很复杂,它需要 JDBC 之上的工具或避免动态查询。
    猜你喜欢
    • 2014-03-07
    • 1970-01-01
    • 2018-02-02
    • 2013-09-16
    • 2014-01-10
    • 1970-01-01
    • 2017-04-20
    • 1970-01-01
    • 2019-02-09
    相关资源
    最近更新 更多