设为首页 加入收藏

TOP

深入浅出MyBatis-Sqlsession(二)
2015-07-24 10:48:21 来源: 作者: 【 】 浏览:4
Tags:深入浅出 MyBatis-Sqlsession
return method.invoke(this, args); }
finalClass declaringInterface = findDeclaringInterface(proxy, method);
finalMapperMethod mapperMethod = newMapperMethod(declaringInterface, method, sqlSession); final Objectresult = mapperMethod.execute(args);
if (result ==null && method.getReturnType().isPrimitive()&& !method.getReturnType().equals(Void.TYPE)) {
thrownewBindingException("Mapper method '" + method.getName() + "'(" + method.getDeclaringClass() + ") attempted toreturn null from a method with a primitive return type ("
+ method.getReturnType() + ")."); }
return result; }

[java] view plaincopy
public Objectexecute(Object[] args) { Objectresult = null;
if(SqlCommandType.INSERT == type) { Objectparam = getParam(args);
result= sqlSession.insert(commandName, param); } elseif(SqlCommandType.UPDATE == type) {
Object param = getParam(args); result= sqlSession.update(commandName, param);
} elseif(SqlCommandType.DELETE == type) { Objectparam = getParam(args);
result= sqlSession.delete(commandName, param); } elseif(SqlCommandType.SELECT == type) {
if (returnsVoid &&resultHandlerIndex != null) { executeWithResultHandler(args);
} elseif (returnsList) { result = executeForList(args);
} elseif (returnsMap) { result = executeForMap(args);
} else { Object param = getParam(args);
result = sqlSession.selectOne(commandName, param); }
} else { thrownewBindingException("Unknown execution method for: " + commandName);
} return result;
}

[java] view plaincopy
public Listquery(MappedStatement ms, Object parameterObject, RowBounds rowBounds,ResultHandler resultHandler) throws SQLException { if (ms != null) {
Cachecache = ms.getCache(); if (cache != null) {
flushCacheIfRequired(ms); cache.getReadWriteLock().readLock().lock();
try { if (ms.isUseCache() && resultHandler ==null) {
CacheKey key = createCacheKey(ms, parameterObject, rowBounds); final List cachedList = (List)cache.getObject(key);
if (cachedList != null) { returncachedList;
} else { List list = delegate.query(ms,parameterObject, rowBounds, resultHandler);
tcm.putObject(cache,key, list); return list;
} } else {
returndelegate.query(ms,parameterObject, rowBounds, resultHandler); }
} finally { cache.getReadWriteLock().readLock().unlock();
} }
} returndelegate.query(ms,parameterObject, rowBounds, resultHandler);
} [java] view plaincopy
public ListdoQuery(MappedStatement ms, Object parameter, RowBounds rowBounds,ResultHandler resultHandler) throws SQLException { Statementstmt = null;
try { Configuration configuration = ms.getConfiguration();
StatementHandler handler = configuration.newStatementHandler(this, ms,parameter, rowBounds,resultHandler); stmt =prepareStatement(handler);
returnhandler.query(stmt, resultHandler); } finally {
closeStatement(stmt); }
} [java] view plaincopy
publicStatementHandler newStatementHandler(Executor executor, MappedStatementmappedStatement, ObjectparameterObject, RowBounds rowBounds, ResultHandler resultHandler) {
StatementHandler statementHandler = newRoutingStatementHandler(executor, mappedStatement,parameterObject,rowBounds, resultHandler); statementHandler= (StatementHandler) interceptorChain.pluginAll(statementHandler);
returnstatementHandle
首页 上一页 1 2 3 4 下一页 尾页 2/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇oraInst.loc文件在不同os下有不同.. 下一篇Addnode.sh失败,日志文件报错PRKC..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Asus Armoury Crate (2025-12-26 02:52:33)
·WindowsFX (LinuxFX) (2025-12-26 02:52:30)
·[ Linux运维学习 ] (2025-12-26 02:52:27)
·HTTPS 详解一:附带 (2025-12-26 02:20:37)
·TCP/IP协议到底在讲 (2025-12-26 02:20:34)