天天看点

如何在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") 注解,最后再使用$获取参数即可