mapper 执行多条语句
时间: 2024-02-11 08:33:56 浏览: 153
尚硅谷-通用Mapper视频教程
在使用 Mapper 执行多条语句时,可以使用 `@org.apache.ibatis.annotations.SelectProvider` 注解结合 `org.apache.ibatis.jdbc.SQL` 类来实现。下面是一个简单的示例:
```java
@SelectProvider(type = SqlProvider.class, method = "multiSql")
List<Map<String, Object>> executeMultiSql();
class SqlProvider {
public String multiSql() {
return new SQL() {{
SELECT("*");
FROM("table1");
WHERE("id = 1");
}}.toString() + ";" + new SQL() {{
SELECT("*");
FROM("table2");
WHERE("id = 2");
}}.toString();
}
}
```
上述示例中,`SqlProvider` 类中的 `multiSql` 方法返回两个 SQL 语句的拼接结果,中间用分号隔开。在 `@SelectProvider` 注解中,`type` 属性指定了 `SqlProvider` 类,`method` 属性指定了 `multiSql` 方法。
需要注意的是,`executeMultiSql()` 方法返回的是一个 `List<Map<String, Object>>` 类型的结果集,其中每个 `Map` 对应一条 SQL 语句的查询结果。如果执行的是增删改操作,则返回值通常为 `int` 类型的受影响行数。
阅读全文