更新语句的执行结果是一个整型值,表示本次更新所影响的行数。由于返回值类型简单,

因此处理逻辑也很简单。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// -☆- MapperMethod
private Object rowCountResult(int rowCount) {
final Object result;
// 这里的 method 类型为 MethodSignature,即方法签名
if (method.returnsVoid()) {
// 方法返回类型为 void,则不用返回结果,这里将结果置空
result = null;
} else if (Integer.class.equals(method.getReturnType()) ||
Integer.TYPE.equals(method.getReturnType())) {
// 方法返回类型为 Integer 或 int,直接赋值返回即可
result = rowCount;
} else if (Long.class.equals(method.getReturnType()) ||
Long.TYPE.equals(method.getReturnType())) {
// 如果返回值类型为 Long 或者 long,这里强转一下即可
result = (long) rowCount;
} else if (Boolean.class.equals(method.getReturnType()) ||
Boolean.TYPE.equals(method.getReturnType())) {
// 方法返回类型为布尔类型,若 rowCount > 0,则返回 ture,否则返回 false
result = rowCount > 0;
} else {…}

return result;
}