从前面几篇文章,我们了解了从SQ解析---》SQL路由--》SQL改写--》SQL执行的整体过程。这一篇主要是讲解执行的结果如何变成正规结果相应到调用方的。
这里不同的执行方法处理的方式( execute , executeUpdate , executeQuery )也是不一样的
1.execute 方法返回的是 boolean 类型,处理比较简单
public boolean execute() throws SQLException {
List<Boolean> result = executorEngine.executePreparedStatement(sqlType, preparedStatementUnits, parameters, new ExecuteCallback<Boolean>() {
@Override
public Boolean execute(final BaseStatementUnit baseStatementUnit) throws Exception {
return ((PreparedStatement) baseStatementUnit.getStatement()).execute();
}
});
if (null == result || result.isEmpty() || null == result.get(0)) {
return false;
}
return result.get(0);
}
2.executeUpdate 方法,返回的是int类型,执行成功的条数,这里计算也是比较简单的
public int executeUpdate() throws SQLException {
List<Integer> results = executorEngine.executePreparedStatement(sqlType, preparedStatementUnits, parameters, new ExecuteCallback<Integer>() {
@Override
public Integer execu