ibatis對MySQL資料庫的批量操作
對於批量操作,iBATIS提供了兩種方式:
使用iterate標籤,進行批量插入操作;
使用普通的SQL呼叫,提交時使用batch提交。
下面一一介紹:
1、使用iterate標籤,進行批量插入操作
將需要插入的Java Object封裝到一個java.util.List集合中,然後呼叫SQL插入。這種方式主要利用iBATIS提供的iterate標籤。例子如下:(下面例子中的list只是一個別名,可以更改)
2、使用batch提交方式<insert id="addList" parameterClass="java.util.List"> <![CDATA[ insert into t_test(field1, field2, field3)values ]]> <iterate conjunction=","> <![CDATA[ (#list[].field1#, #list[].field2#, #list[].field3#) ]]> </iterate> </insert>
這個需要修改Dao層方法,下面程式碼是修改後的dao層程式碼,入參list為需要進行批量操作的Java Object集合,入參sqlId是要對list集合中每個物件要進行的操作的SQL(sqlId為iBATIS XML配置檔案中的SQL對應的id)。例如SQL要進行更新操作,那麼呼叫這個批量操作,會對list中的各個物件分別進行更新操作。
注意下面程式碼中的getSqlMapClient方法,使用iBATIS專案中應該都會注入這個物件。
批量操作呼叫的SQLpublic void batchOpt(final List<Object> list, final String sqlId ) throws Exception { SqlMapClient smc = etSqlMapClient(); SqlMapClientTemplate client = new SqlMapClientTemplate(); client.setSqlMapClient(smc); client.execute(new SqlMapClientCallback<Object>() { public Object doInSqlMapClient(SqlMapExecutor exec) throws SQLException { exec.startBatch(); final int batchSize = 100; for (int i = 0; i < list.size(); i++) { exec.insert(sqlId, list.get(i)); if (i % batchSize == 0) { exec.executeBatch(); } } exec.executeBatch(); return null; } }); }
<update id="updateObj" parameterClass="list集合中物件的型別">
update t_test set field1 = #field1# , field2 = #field2# where field3 = #field3#
</update>
相關推薦
ibatis對MySQL資料庫的批量操作
對於批量操作,iBATIS提供了兩種方式: 使用iterate標籤,進行批量插入操作; 使用普通的SQL呼叫,提交時使用batch提交。 下面一一介紹: 1、使用iterate標籤,進
程式對關係型資料庫批量操作
一、批量插入 1.1、oracle批量插入 insert into test(name) select * from (select '111' from dual union all select '222' from dualunion all select '333' from dualunion
mybatis 對 mysql的批量操作
1:插入返回主鍵 <insert id="save" parameterType="map" useGeneratedKeys="true" keyProperty="ID" flushCache="false"> insert into table ( CODE
Hibernate對mysql資料庫的操作
hibernate相對於mybatis來說,他是一個重量級的框架,可能比mybatis更加讓人不能夠理解一點,但是如果你從開始首先接觸hibernate,那麼由深到淺就容易得多了。 用到hibernate,首先我們需要匯入hibernate所需要的jar包,或者用myecl
用JavaScript對MySQL資料庫進行操作的方法
Javascript訪問Access很容易實現,但JS訪問MYSQL卻沒有找到很簡單的方法。今天在瀏覽MYSQL網站時,發現MYSQL有ODBC連線,突然想到JS是可以通過ActiveX訪問ODBC資料庫的,經過測試發現JS連線MYSQL如此簡單!1、下載MYSQL的ODB
Java對MySQL資料庫進行操作【java】
資料庫幾乎是每一個應用型的程式都會用到,學會如何高效操作資料庫也是開發一個重點。今天我總結了具體的操作步驟以及注意點。Java訪問資料庫主要用的方法是JDBC,它是java語言中用來規範客戶端程式如何來訪問資料庫的應用程式介面,提供了諸如查詢和更新資料庫中資料的方法,接下來
linux環境下對mysql資料庫的操作
本文記錄的是在linux環境下對mysql資料庫的一些基本操作,如:資料庫連線、 建立資料庫、設定資料庫使用者的許可權、 資料庫的匯入匯出等...... 一、進入資料庫 mysql -h10.0.0.1 -uroot -proot (進入遠端資料庫)或者進入本機資料庫:
jsp實現對mysql資料庫的操作
接上,在PersonDao.java中逐項完成方法。 PreparedStatement pmst; Connection conn; ResultSet rs; 增加資料: public int addPerson(Person p) { int i = 0;
JAVA對MYSQL資料庫進行批量操作,addBatch(),executeBatch()方法
有人說MySql的JDBC驅動,不是真正支援批量操作的,就算你在程式碼中呼叫了批量操作的方法,MySql的JDBC驅動也是按照一般操作來處理的。 但其實並非如此,Mysql 是有特殊的方式優化整個batch insert 結果的。 可不可以先假設 batch 的方式與非
ibatis對oracle資料庫的批量更新和批量插入的操作
今天有個批量的東西很是耽誤我的時間,那就是ibatis對Oracle的批量操作,雖然覺得這種批量的沒什麼,以前也有做過,但是對於mysql和oracle是不一樣的,那麼接下來我們就來介紹一下,oracle的批量操作,至於MySQL百度上面有的是。 1.批量插入: <
ContentProvider提供的對資料庫批量操作的方法和對資料庫變化監控的方法
最近專案中用到了資料批量入庫和監控資料庫變化的需求,整理總結如下: 1.批量操作資料庫的方法 1)ContentProvider中提供了批量處理資料的方法applyBatch,Android原始碼在ContentProvider.java中實現如下: @Override
Spring+Maven+JdbcTemplate實現對mysql資料庫操作
第一步匯入需要的maven: <dependency> <groupId>org.springframework</groupId> <artifactId>spring-conte
Spring Boot 2.x使用Spring Data Jpa對MySQL資料庫進行CRUD操作
只需兩步!Eclipse+Maven快速構建第一個Spring Boot專案 構建了第一個Spring Boot專案。 Spring Boot連線MySQL資料庫 連線了MySQL資料庫。 本文在之前的基礎上,使用Spring Data Jpa對MySQL
對Mysql資料庫的基本操作的一些總結
Mysql資料庫的基本操作 總注:所有sql語句結尾處最好加上分號符; MySQL中的一些語句使用方法: #檢視所有的資料庫 show databases; #檢視資料庫下所有的表 show tables; 注:sql語句不區分大小寫,但是嚴重區分中英文
C++對MySQL資料庫進行匯出和匯入操作
相信大家應該在網上看到很多利用SQL語句對MySQL資料庫的表或者資料庫本身進行匯出和匯入操作。在window環境下利用dos命令列匯出資料庫(我的mysq直接裝在c盤根目錄下下,其bin目錄為:c:/mysql/bin): 1、執行MySQL資料庫匯出操作: c:\my
初識和利用Servlet,獲取和顯示頁面提交的資料以及對MySQL資料庫的簡單操作 7.04
Servlet:web伺服器端的程式設計技術。是繼承了javax.servlet.http.HttpServlet類的Java類。由支援servlet的web伺服器(tomcat)呼叫和啟動執行。一個
使用Java語言實現對MySQL資料庫的基本操作
在資料庫的使用中最為主要的就是對資料庫的增、刪、查、改操作,MySQL資料庫作為關係型資料庫的一種,其資料庫管理系統是由瑞典MySQL AB 公司開發,目前屬於 Oracle 旗下產品。MySQL 是最流行的關係型資料庫管理系統之一,在 WE
對mysql資料許可權操作,預設的mysql資料庫找不到
問題來源:對資料的許可權或則等等進行了操作(這裡忘記怎麼操作了),導致mysql資料庫中的mysql資料庫和自己建立的一些資料庫看不到了。 修改方案如下: 1、首先關閉資料庫:/etc/init.d/mysql stop 2、usr/bin(mysql安裝路徑下) # my
Java對mysql資料庫的增刪改查創表5個操作
package mywork.com; import java.sql.*; import java.text.DecimalFormat; // DecimalFormat df = new DecimalFormat("#0.000"); import java.util.Scanner; import
第六章:Django對mySQL資料庫的增刪改查操作
上一章中介紹了用Django連線MySQL資料庫,本章介紹最基本的增刪改查操作,繼續利用上一章建立的表 一、新增資料 1、引入資料模組 from models import Blog