不使用insert语句在JDBC中插入记录

时间:2014-06-17 15:49:49

标签: mysql jdbc sql-insert

我对使用JDBC访问Java数据库的概念特别陌生。我使用MySql作为我的DBMS,我只是想知道是否有一种方法可以在我的数据库中插入记录而不使用" insert" MySql声明?

1 个答案:

答案 0 :(得分:1)

纯粹看JDBC,可以在不使用INSERT的情况下将新行添加到数据库中。但是,无法保证实际的JDBC驱动程序不使用INSERT语句。

try (
    Connection con = DriverManager.getConnection(....);
    Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
        ResultSet.CONCUR_UPDATABLE);
    ResultSet rs = stmt.executeQuery("SELECT col1, col2, col3 FROM someTable");
) {
    rs.moveToInsertRow();
    rs.updateString(1, "new value col1");
    rs.updateString(2, "new value col2");
    rs.updateString(3, "new value col3");
    rs.insertRow();
}

这将在结果集中插入一行,但实际的实现可能只是生成INSERT语句来实现此目的。此方式也不是非常有效(特别是如果表有大量行),如果我们没有选择(或更新)具有约束的列(例如NOT NULLCHECK约束)。

还有许多构建在JDBC之上的框架,允许您创建和操作数据,而无需自己编写查询,但最终它可能会生成INSERT个查询。

所以:从您的角度来看,肯定可以将数据插入到数据库中,但最终您使用的工具可能会以某种形式使用INSERT语句。