mybatis-plus deletebatchids源码
时间: 2023-09-06 22:05:59 浏览: 254
Mybatis-Plus是一个基于MyBatis的ORM框架,提供了很多方便的操作数据库的方法。deleteBatchIds方法是其中的一个方法,用于根据多个ID批量删除数据。
deleteBatchIds方法的源码如下:
```java
public void deleteBatchIds(Collection<? extends Serializable> idList) {
if (idList == null || idList.isEmpty()) {
throw new IllegalArgumentException("The idList must not be empty");
}
StringBuilder sql = new StringBuilder();
sql.append("DELETE FROM ");
sql.append(tableName);
sql.append(" WHERE ");
sql.append(keyColumn);
sql.append(" IN (");
for (int i = 0, size = idList.size(); i < size; i++) {
sql.append("#{list[")
.append(i)
.append("]}");
if (i != size - 1) {
sql.append(",");
}
}
sql.append(")");
Map<String, Object> params = new HashMap<>();
params.put("list", idList);
SqlParameterSource parameterSource = new MapSqlParameterSource(params);
namedParameterJdbcTemplate.update(sql.toString(), parameterSource);
}
```
该方法首先判断传入的idList是否为空,如果为空则抛出异常。然后,创建一个StringBuilder对象sql,用于拼接SQL语句。接着,将表名、主键列名等拼接到sql中。然后,使用循环将idList中的每个ID拼接到SQL语句的IN子句中。最后,创建一个参数map,将idList放入其中,并将参数map转化为SqlParameterSource对象,通过namedParameterJdbcTemplate的update方法执行SQL语句。
总结来说,deleteBatchIds方法的源码实现了根据多个ID批量删除数据的功能,使用了MyBatis的命名参数来处理参数,保证了SQL语句的安全性。通过这个方法,我们可以方便地批量删除数据库中的数据。
阅读全文