跳到主要内容

@Execute 注解

用来标记在接口方法上,执行任意的 SQL 语句(DML/DDL 均可)。

信息

如果传入的是一个字符串数组,它们会被连接起来,中间用一个空格隔开。
通过字符串数组可以更清晰地管理多行 SQL。

示例:创建 users 分表
@SimpleMapper
public interface UserMapper {
@Execute({"create table users_${part} (",// 1. 定义 SQL 语句
" id int primary key,", //
" name varchar(50)", //
")"})
int newPartTable(
@Param("part") int partId // 2. partId 参数
);
}
  • ${part} 采用的是字符串替换方式传递参数(注意 SQL 注入风险)

属性清单

属性名描述
value必选 将要被执行的 SQL 语句。
statementType可选 JDBC 执行使用何种方式。默认值为 Prepared
- Statement 对应 java.sql.Statement
- Prepared 对应 java.sql.PreparedStatement
- Callable 对应 java.sql.CallableStatement
timeout可选 设置执行超时时间(秒),会调用 Statement.setQueryTimeout(int)。默认值 -1 表示不设置
bindOut可选 绑定输出参数名称,用于接收存储过程的输出参数或多结果集。
使用该参数时返回值类型必须为 Map<String,Object>