天天看點

如何在mybatis中使用in

---
title: 如何在mybatis中使用in
date: 2020-04-16 09:59:59
tags: ['mybatis','in']
---

## 資料處理:
因為要使用in語句來執行,我們的大緻sql語句如下  
`update table set column = x where id in (1,2,3)`  
是以提前準備好1,2,3這樣的資料,大緻代碼如下:  
![](http://cl-images-test.oss-cn-beijing.aliyuncs.com/pasteimageintomarkdown/2020-04-16/3314938267600.png?Expires=4740600014&OSSAccessKeyId=LTAIDmkZp27rAMAc&Signature=QOpQSZdG%2F0fD%2BRtL8zv8Sy8UgQM%3D)
使用lang3包join即可轉換為這種格式

## 資料擷取
這裡資料擷取就是mybatis的一個坑,如果使用#{param} 那麼會出現這種sql  
`update table set column = x where id in ('1,2,3')`  
括号裡面出現了引号,這肯定不是我們想要的,那麼考慮使用$符号來擷取資料,于是如下
`There is no getter for property named '*' in 'class java.lang.String`  
發生了錯誤:

## 解決方案
在mapper參數前加上@Param("param") 注解,最後再使用$擷取參數即可