Mysql 在JDBC中插入记录而不使用Insert语句

Mysql 在JDBC中插入记录而不使用Insert语句,mysql,jdbc,sql-insert,Mysql,Jdbc,Sql Insert,我对使用JDBC访问Java中数据库的概念特别陌生。我正在使用MySql作为我的DBMS,我只是想知道是否有一种方法可以在我的数据库中插入记录,而不必使用MySql的“insert”语句?纯看JDBC,不必自己使用insert就可以在数据库中添加新行。但是,不能保证实际的JDBC驱动程序不使用INSERT语句 试试看( Connection con=DriverManager.getConnection(..); 语句stmt=con.createStatement(ResultSet.TYPE

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

纯看JDBC,不必自己使用
insert
就可以在数据库中添加新行。但是,不能保证实际的JDBC驱动程序不使用
INSERT
语句

试试看(
Connection con=DriverManager.getConnection(..);
语句stmt=con.createStatement(ResultSet.TYPE\u SCROLL\u不敏感,
结果集CONCUR_可更新);
ResultSet rs=stmt.executeQuery(“从someTable中选择col1、col2、col3”);
) {
rs.moveToInsertRow();
rs.updateString(1,“新值列1”);
rs.updateString(2,“新价值col2”);
rs.updateString(3,“新价值col3”);
rs.insertRow();
}
这将在结果集中插入一行,但实际实现可能只是生成一个
insert
语句来实现这一点。此外,这种方法效率不高(特别是在表中有大量行的情况下),如果没有选择(或更新)具有约束的列(例如
notnull
CHECK
约束),则可能会失败

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


因此:从您的角度来看,是的,当然可以将数据插入数据库,但最终您使用的工具可能会以某种形式使用
insert
语句。

为什么?请解释为什么不想使用
INSERT
。这仅仅是出于学术好奇心,还是您对
INSERT
有点不喜欢?@Mark rottveel前一种,即学术好奇心CallableStatement可以以任何方式用于执行所需的操作?@VishalChugh不太喜欢,它是用于执行存储过程的。因此,如果您有一个为您执行insert的存储过程,那么是的,但这仍然是一种“欺骗”(因为存储过程本身将包含insert语句)。