1. 程式人生 > >ibatis對MySQL資料庫的批量操作

ibatis對MySQL資料庫的批量操作

對於批量操作,iBATIS提供了兩種方式:

    使用iterate標籤,進行批量插入操作;

    使用普通的SQL呼叫,提交時使用batch提交。

下面一一介紹:

1、使用iterate標籤,進行批量插入操作

   將需要插入的Java Object封裝到一個java.util.List集合中,然後呼叫SQL插入。這種方式主要利用iBATIS提供的iterate標籤。例子如下:(下面例子中的list只是一個別名,可以更改)

<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>
2、使用batch提交方式

這個需要修改Dao層方法,下面程式碼是修改後的dao層程式碼,入參list為需要進行批量操作的Java Object集合,入參sqlId是要對list集合中每個物件要進行的操作的SQL(sqlId為iBATIS XML配置檔案中的SQL對應的id)。例如SQL要進行更新操作,那麼呼叫這個批量操作,會對list中的各個物件分別進行更新操作。

注意下面程式碼中的getSqlMapClient方法,使用iBATIS專案中應該都會注入這個物件。

public 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;
		}
		
	});
}
批量操作呼叫的SQL
<update id="updateObj" parameterClass="list集合中物件的型別">
	update t_test set field1 = #field1# , field2 = #field2# where field3 = #field3#
</update>




相關推薦

ibatisMySQL資料庫批量操作

對於批量操作,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

Hibernatemysql資料庫操作

hibernate相對於mybatis來說,他是一個重量級的框架,可能比mybatis更加讓人不能夠理解一點,但是如果你從開始首先接觸hibernate,那麼由深到淺就容易得多了。 用到hibernate,首先我們需要匯入hibernate所需要的jar包,或者用myecl

用JavaScriptMySQL資料庫進行操作的方法

Javascript訪問Access很容易實現,但JS訪問MYSQL卻沒有找到很簡單的方法。今天在瀏覽MYSQL網站時,發現MYSQL有ODBC連線,突然想到JS是可以通過ActiveX訪問ODBC資料庫的,經過測試發現JS連線MYSQL如此簡單!1、下載MYSQL的ODB

JavaMySQL資料庫進行操作【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;

JAVAMYSQL資料庫進行批量操作,addBatch(),executeBatch()方法

有人說MySql的JDBC驅動,不是真正支援批量操作的,就算你在程式碼中呼叫了批量操作的方法,MySql的JDBC驅動也是按照一般操作來處理的。 但其實並非如此,Mysql 是有特殊的方式優化整個batch insert 結果的。 可不可以先假設 batch 的方式與非

ibatisoracle資料庫批量更新和批量插入的操作

今天有個批量的東西很是耽誤我的時間,那就是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 JpaMySQL資料庫進行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

Javamysql資料庫的增刪改查創表5個操作

package mywork.com; import java.sql.*; import java.text.DecimalFormat; // DecimalFormat df = new DecimalFormat("#0.000"); import java.util.Scanner; import

第六章:DjangomySQL資料庫的增刪改查操作

上一章中介紹了用Django連線MySQL資料庫,本章介紹最基本的增刪改查操作,繼續利用上一章建立的表 一、新增資料 1、引入資料模組 from models import Blog