首页 > 解决方案 > 如何使用 ResultSet JDBC 更新 Select 中包含联接的字段

问题描述

是否可以使用 ResultSet 更新多个表中的字段?我尝试了选择:
“SELECT PERSONS.NAME FROM PERSONS”,它可以工作,但是当我加入时,它会抛出一个错误,指出字段标题无效。是否可以编写多个连接,然后更新所有字段,还是我必须逐表进行?

示例代码:

Statement statement = null;
try {
    statement = conn.createStatement();
    statement = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
               ResultSet.CONCUR_UPDATABLE);
    String sql = "SELECT PERSONS.NAME, BOOKS.TITLE,* FROM PERSONS LEFT OUTER JOIN BOOKS ";
    ResultSet rs = statement.executeQuery(sql);

    while (rs.next()) {
        rs.updateString( "NAME", "John");
        rs.updateString("TITLE", "Random Title");
        rs.updateRow();
    }

} catch (SQLException e ) {
    JDBCTutorialUtilities.printSQLException(e);
} finally {
    if (statement != null) { statement.close(); }
}

标签: javasqlsql-serverjdbc

解决方案


据我所知,您只能更新SELECT与单个表对应的“简单” SQL。当你添加一个连接时,它突然变成了一个“复杂的 SQL”。


推荐阅读