對於使用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前者即學術好奇心 –