对于使用JDBC访问Java中的数据库的概念,我特别不熟悉。我使用MySql作为我的DBMS,我只想知道是否有方法在我的数据库中插入记录而不使用MySql的“insert”语句?在不使用插入语句的情况下在JDBC中插入记录
回答
纯粹看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 NULL
或CHECK
约束条件),它可能会失败。
还有一些构建在JDBC之上的框架允许您创建和操作数据,而无需自己编写查询,但最终很可能会生成INSERT
查询。
因此:从您的角度来看,肯定可以将数据插入到数据库中,但最终用于执行此操作的工具可能会以某种形式使用INSERT
语句。
可以使用CallableStatement以任何方式执行所需的操作? –
@VishalChugh不是,它用于执行存储过程。因此,如果你有一个为你插入的存储过程,那么是的,但这仍然是一种'欺骗'的形式(因为存储过程本身将包含插入语句)。 –
- 1. 只有在记录不存在的情况下插入记录
- 2. 在不存在记录的情况下用SQL插入多行
- 3. 仅在记录不存在的情况下插入值
- 4. 在不使用游标的情况下在SQL中循环插入语句
- 5. 如何在甲骨文中不存在记录的情况下插入记录?
- 6. 如何在不使用LINQPad中的SubmitChanges的情况下检索插入语句
- 7. 在不锁定表格的情况下插入大量记录
- 8. PL/SQL - 只在记录不存在的情况下插入记录
- 9. 如何在不插入100 MB的插入语句的情况下插入100 MB?
- 10. 在不使用门户的情况下向表中插入新记录
- 11. 一次使用一个插入语句插入多个记录
- 12. 使用单个插入语句插入多条记录
- 13. JDBC插入语句不起作用
- 14. Sqlite插入语句不会在表中放入记录
- 15. 插入语句中的记录数(Oracle)
- 16. 在不使用游标的情况下基于值插入重复记录
- 17. 如何在不使用mysql事件的情况下每年插入新记录
- 18. SQL插入语句插入2条记录而不是1条
- 19. PostgreSQL如何用一条插入语句插入多条记录
- 20. 此代码如何在没有任何插入语句的情况下在MySQL中创建新记录?
- 21. 使用select语句在表中插入
- 22. 在插入语句中使用别名
- 23. 在插入语句中使用转换
- 24. 在程序中使用插入语句!
- 25. myBatis:在插入语句中使用typehandlers
- 26. 在CASE语句中插入
- 27. 使用SSIS插入记录而不插入预先存在的记录
- 28. 性能 - MySQL的默认情况下插入记录
- 29. 如何在不使用插入的情况下向类中注入代码?
- 30. MySQL插入语句不会插入?
为什么?请解释你为什么不想使用'INSERT'。这只是学术上的好奇心,还是你对“INSERT”有些厌恶? –
@Mark Rotteveel前者即学术好奇心 –