【问题标题】:Is there a way to select records from tables that has different attributes? [closed]有没有办法从具有不同属性的表中选择记录? [关闭]
【发布时间】:2019-05-06 18:08:06
【问题描述】:

我想创建一个无论表结构(不同的列数、数据类型等)都可以工作的 SELECT 方法。我不是要源代码。我只需要一些建议和想法,或者我如何到达那里的路线。

这是我的代码:(仅当我知道该表中的数据类型和列数时才有效)

public static void select(Connection con, String USRIDX ) throws ClassNotFoundException { 

String sql = "SELECT * from test where USRIDX =" + USRIDX;

    try(PreparedStatement pstmt = con.prepareStatement(sql)) {
        ResultSet rs = pstmt.executeQuery(sql);
        while(rs.next()) {
            String a = rs.getString(1);
            String b = rs.getString(2); 
            String c = rs.getString(3); 
            LOG.info(a +" " + b + " "+c );

        } 
    } catch(SQLException e) {
        LOG.info(e.getMessage());
    }
}      

【问题讨论】:

  • 回复String sql = "SELECT * from test where USRIDX =" + USRIDX;:Let me introduce you to my friend Bobby...
  • “我想创建一个 SELECT 方法,无论表结构如何(不同的列数、数据类型等)都可以工作。” 为什么?那基本上是重新创建一个JDBC 的子集。只需使用 JDBC(特别是PreparedStatement,请参见上文)。
  • @T.J.Crowder 感谢您的洞察力。我有点新,所以只是学习一大堆东西。有时很难处理,所以会出现奇怪的问题。 :)
  • :-) 够公平的!

标签: java sql select jdbc


【解决方案1】:

您可以使用 Statement.execute(String sql)。这里 sql 可以是任何东西,包括删除或插入。如果它返回 true,则表示它是 select 并且您在该语句上调用 getResultSet(),否则您调用 Statement.getUpdateCount()。要了解结果集列,请调用 ResultSet.getMetaData()。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-01
    • 2021-12-30
    相关资源
    最近更新 更多