日期:2014-05-19  浏览次数:20823 次

mybaits 使用sqlMap如何知道update语句到底更新了数据没有?
因为更新语句的where条件不一定存在
我想知道到底更了数据没有,就像int rows = prepareStatement.executeUpdate();这样
但是,mybaits使用配置方式的的update的返回是void,那我怎么做呢?

------解决方案--------------------
有返回值啊。谁说没有。。
下面是源码
public Object insert(final String statementName, final Object parameterObject)
throws DataAccessException {

return execute(new SqlMapClientCallback() {
public Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException {
return executor.insert(statementName, parameterObject);
}
});
}

public int update(String statementName) throws DataAccessException {
return update(statementName, null);
}

public int update(final String statementName, final Object parameterObject)
throws DataAccessException {

Integer result = (Integer) execute(new SqlMapClientCallback() {
public Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException {
return new Integer(executor.update(statementName, parameterObject));
}
});
return result.intValue();
}