1. 程式人生 > >mybatis處理集合、迴圈、陣列和in等語句的使用

mybatis處理集合、迴圈、陣列和in等語句的使用

在mybatis 批量執行sql時,報錯 java.util.list can't find. 原因:collection 屬性定義錯誤。

List a=ArrayList.asList(str); sql 遍歷資料a,  a為一個list,所以 collection 屬性要定義成 list;

String [] ids=str.split(","); sql遍歷資料ids,ids 是一個數組,所以collection屬性要定義成 array;

在使用foreach的時候最容易出錯的就是collection屬性,該屬性是必須指定的,在不同情況 下,該屬性的值是不一樣的,主要有一下3種情況:

1.     如果傳入的是單引數且引數型別是一個List的時候,collection屬性值為list

2.     如果傳入的是單引數且引數型別是一個array陣列的時候,collection的屬性值為array

3.     如果傳入的引數是多個的時候,我們就需要把它們封裝成一個Map了,當然單引數也可以封裝成map,實際上如果你在傳入引數的時候,在breast裡面也是會把它封裝成一個Map的,map的key就是引數名,所以這個時候collection屬性值就是傳入的List或array物件在自己封裝的map裡面的key.

    我採用mybatis直接將陣列當作引數傳入總是出現錯誤,說找不到引數,也按照上述的條件一一嘗試結果還是不行,我想可能出現這個問題的原因是mybatis的版本問題。後來採用傳入一個實體,在實體裡面定義陣列的方法。然後操作,這樣就不出錯了。此方法雖為下冊,但也可以應付一些關鍵問題。

下面看看程式碼把!

實體bean:

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 packagecom.huaat.weibo.vo; importjava.io.Serializable; /** * 我的微博實體
* <a href="http://my.oschina.net/arthor" target="_blank" rel="nofollow">@author</a> jing.yue * @version 2012/07/17 1.0.0 */ publicclass MyWeibo implementsSerializable { privatestatic final long serialVersionUID = 754681127580984228L; privateString[] fileNames; privateString[] fileUrls; publicString[] getFileNames() { returnfileNames; } publicvoid setFileNames(String[] fileNames) { this.fileNames = fileNames; } publicString[] getFileUrls() { returnfileUrls; } publicvoid

相關推薦

mybatis處理集合迴圈陣列in語句的使用

在mybatis 批量執行sql時,報錯 java.util.list can't find. 原因:collection 屬性定義錯誤。 List a=ArrayList.asList(str); sql 遍歷資料a,  a為一個list,所以 collection 屬性要定義成 list

mybatis處理集合迴圈陣列in查詢語句的使用

在Mybatis的xml配置中使用集合,主要是用到了foreach動態語句。 foreach的引數:foreach元素的屬性主要有 item,index,collection,open,separator,close。item表示集合中每一個元素進行迭代時的別名.index

mybatis處理集合循環數組in查詢語句的使用

round style 數組 cti abstract 進行 每一個 過濾 註入 在Mybatis的xml配置中使用集合,主要是用到了foreach動態語句。 foreach的參數:foreach元素的屬性主要有 item,index,collection,open,se

[Bash] 分支迴圈陣列

分支 #!/bin/bash read mychar if [ "$mychar" == 'y' -o "$mychar" == 'Y' ];then echo YES elif [ "$mychar" == "n" -o "$mychar" == "N" ];then echo

陣列迴圈條件分支小實踐

//將陣列A中的內容和陣列B中的內容進行交換 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() { int arrA[5] = {0}; int arrB[5] = {0

C++學習筆記(一)資料型別資料處理複合型別迴圈分支

     過段時間打算上手OpenCV,自己不是特別喜歡Python這個語言,幹嵌入式時間久了還是對C有種執念,同時C++在嵌入式應用以及影象處理方面也是有很大佔有量的,所以從國慶假期開始上手C++,當然學好C++絕非短時間能辦到的,這需要大量的練習和使用,給自己加個油吧,不

python學習一使用listtuple條件判斷迴圈使用dictset

list 列表:list。最後一個元素的索引是len(classmates) - 1  以此類推可以獲得倒數第二個第三個等;list是一個可變的有序表,所以,可以往list中追加元素到末尾用.append(‘’),也可以把元素插入到指定的位置用.insert(索引號,‘’);要刪除指定位置的元素,

Java基礎筆記1——變數迴圈陣列

Java基礎筆記1 一.初識Java Java SE:Java Platform Standard Edition Java平臺標準版 Java EE:Java Platform Enterprise Edition Java平臺企業版 Java ME:Java Platform Mircr

JS一維陣列多維陣列物件的混合使用

引言        這篇文章的主要目的是講解JavaScript陣列和物件的混合使用,由於JS的弱檢查特性,因此在JS陣列中可以同時儲存不同型別的變數,比如你可以把數字、字串、字元、物件等內容放在同一

一道騰訊面試題(使用遞迴迴圈陣列實現上臺階方法)

//一道騰訊面試題 //題目:有50個臺階,一次走一步或者兩步,有多少種可能? 分析: 如果有一個臺階,則只有一種可能:1; 如果有兩個臺階,只有兩種可能:11或2; 如果有三個臺階,則有三種

學會如何使用LESS(三)----條件表示式迴圈合併屬性引入

條件表示式 條件表示式其實就是我們在less中使用比較運算子或者表示式的判斷來輸入我們的值,根據不同的條件來輸出不同的值。 一、帶條件的混合 比較運算子有以下幾種: >,>=,=,=<,<,true .mixin( @a )wh

js陣列迴圈this指標以及應用

JavaScript的陣列一、簡要說明:        1.陣列變數var arr = [];        2.陣列是資料的倉庫,length為陣列資料的數量;        3.表示方法:["第一個資料","第二個資料","第三個資料"];        4.arr[下標

WEB前端 | JS基礎——(4)陣列二維陣列this

<!doctype html> <html> <head> <meta charset="utf-8"/> <title>陣列</title> </head> <body> </body>

python列表迴圈判斷小練習——購物車小程式

程式要求: 1.商品資訊儲存在檔案中。 2.列印商品資訊,包括名稱及編號,價格 3.輸入工資 4.選擇商品編號將商品放入購物車,並計算剩餘工資。 5.工資不夠時提醒餘額不足 6.將已購商品,餘額記錄長久儲存 7.列印已購商品名單 8.可以新增商品及價格   流程圖 &nbs

分別用遞迴迴圈bisect實現二叉查詢(python實現)

1、遞迴實現二叉查詢 def binary_search_recursion(lst,target,low,high): if high < low: return None middle = (low + high)//2 if lst[middl

MySQL-儲存過程程式碼筆記-inoutinoutdeclare區域性變數if...else語句

mysql> use test; Database changed mysql> show tables; Empty set (0.00 sec) mysql> use test; Database changed mysql> create table testA

Python 分支迴圈條件列舉

對於表示式,分為“左結合”和“右結合” 左結合:對於沒有 = 號的,從左到右邊,當然要考慮優先順序。 右結合:對於有 = 號存在的情況,右邊的自成一體,然後賦值給左邊變數   優先順序: 邏輯運算子的優先順序: not > and > or

jQuery——進階(動畫迴圈正則事件冒泡事件委託DOM)

目錄單標籤操作鏈式呼叫迴圈遍歷正則表示式事件冒泡事件委託建立標籤dom操作 特殊動畫效果 1.淡入淡出: fadeIn():淡入 fadeOut():淡出 fadeToggle():切換淡入淡出 2.顯示隱藏: show():顯示 hide():隱藏 togg

shell基本用法實戰迴圈python指令碼

1.  數字集合 for i in {1..20} do   echo  $i done 2.詳細列出(字元且項數不多) for i in 1 2 3 4 5 do    echo $i done 3.對存在的檔案進行迴圈 for filename in

斐波那契數列的三種實現方式(遞迴迴圈矩陣)

《劍指offer》裡講到了一種斐波那契數列的 O(logN) 時間複雜度的實現,覺得挺有意思的,三種方法都記錄一下。 一、遞迴     一般來說遞迴實現的程式碼都要比迴圈要簡潔,但是效率不高,比如遞迴計算斐波那契數列第n個元素。 long long Fibonacci