java中批量插入資料jdbc hibernate Mybatis使用方式
1.jdbc方式中使用executeBatch實現
2.採用hibernate框架session.save()儲存資料
在hibernate中實現批量插入,必須通過經常的呼叫 flush() 以及稍後呼叫 clear() 來控制第一級快取的大小。
3.採用MyBatis框架批量新增資料
在MyBatis的mapping檔案中的相應xml的insert標籤中,對插入的值採用迴圈的方式。如下面程式碼:
JDBC中在做資料插入、更新、刪除操作,可以使用executeBatch()方法減少呼叫次數,如:
- Statement pstmt = conn.createStatement();
- pstmt.addBatch("insert into settings values(3,'小米','女')");
- pstmt.addBatch("insert into settings values(6,'小明','男')");
- pstmt.executeBatch();
2.採用hibernate框架session.save()儲存資料
在hibernate中實現批量插入,必須通過經常的呼叫 flush() 以及稍後呼叫 clear() 來控制第一級快取的大小。
- Session session = sessionFactory.openSession();
- Transaction tx = session.beginTransaction();
- for ( int i=0; i<100000; i++ ) {
- Student entity = new Student(.....);
- session.save(entity);
- if ( i % 50 == 0 ) {
- //每次批量把50條資料寫入資料庫並釋放記憶體
- session.flush();
- session.clear();
- }
- }
- tx.commit();
- session.close();
3.採用MyBatis框架批量新增資料
在MyBatis的mapping檔案中的相應xml的insert標籤中,對插入的值採用迴圈的方式。如下面程式碼:
- <insert id ="insertBatch" parameterType="List" >
- insert into STUDENT( ID,NAME,SEX)
- values
- <foreach collection ="list" item ="item" index ="index" separator =",">
- ( #{item.id},#{item.name},#{item.sex})
- </foreach>
- </insert >
相關文章
- mybatis插入資料、批量插入資料MyBatis
- JDBC 批量插入資料優化, 使用 addBatch 和 executeBatchJDBC優化BAT
- MySQL:JDBC批量插入資料的效率MySqlJDBC
- 使用Mybatis批量插入大量資料的實踐MyBatis
- MyBatis中批量插入資料,多重forEach迴圈MyBatis
- MyBatis Plus 批量資料插入功能,yyds!MyBatis
- Java通過Mybatis實現批量插入資料到Oracle中JavaMyBatisOracle
- hibernate進行JDBC批量新增JDBC
- 使用MySqlBulkLoader批量插入資料MySql
- 使用 【Ado.Net】 批量插入資料
- Java MyBatis 插入資料庫返回主鍵JavaMyBatis資料庫
- mybatis 批次插入資料MyBatis
- 還用foreach在MyBatis批量插入資料,伺服器還沒崩?MyBatis伺服器
- Mybatis批量更新三種方式MyBatis
- [轉載] 1.1Java使用JDBC原生方式連線MySql資料庫JavaJDBCMySql資料庫
- Java書籤 #MyBatis之批量插入並返回自增主鍵idJavaMyBatis
- 【MyBatis】幾種批量插入效率的比較MyBatis
- Oracle批量插入資料insert all into用法Oracle
- 使用JDBC時,加速批量insertJDBC
- JDBC連線批量處理資料入庫JDBC
- Laravel 批量插入(如果資料存在刪除原資料)Laravel
- JDBC、ORM ☞ Hibernate、MybaitsJDBCORMAI
- 使用JDBC向MySQL資料庫批次插入10W條資料測試效率JDBCMySql資料庫
- 在 JDBC 中獲取插入 IDJDBC
- Mybatis:插入資料返回自增主鍵MyBatis
- 使用PrepareStatement實現批量插入操作REST
- 資料庫連線分析(1)-從JDBC到MyBatis資料庫JDBCMyBatis
- [Django高階之批量插入資料、分頁器元件]Django元件
- mybatis oracle資料庫批次插入資料,忽略主鍵重複MyBatisOracle資料庫
- mybatis-plus批量插入saveBatch太慢?我願意稱rewriteBatchedStatements為神MyBatis
- mongodb資料庫中插入資料MongoDB資料庫
- Java與資料庫 —— JDBC標準Java資料庫JDBC
- 使用ABAP(ADBC)和Java(JDBC)連線SAP HANA資料庫JavaJDBC資料庫
- Hibernate與mybatis比較MyBatis
- 在MySQL資料庫中,這4種方式可以避免重複的插入資料!MySql資料庫
- mybatis批次插入MyBatis
- 使用mybatis-plus,由於表名關鍵字導致插入資料失敗MyBatis
- Hibernate 註解方式
- 【Mybatis原始碼解析】- JDBC連線資料庫的原理和操作MyBatis原始碼JDBC資料庫