读书人

开始mybaits源码学习 一

发布时间: 2012-10-09 10:21:45 作者: rapoo

开始mybaits源码学习 1

??? 从org.apache.ibatis.binding.MapperProxy开始。

??? MapperProxy是一个代理类实现java标准代理接口,私有构造,另提供一个获得动态代理的静态方法。

?

??? 1. newMapperProxy

?在Object execute(Object[] args)方法中根据type调用SqlSession不同的方法

?

  public Object execute(Object[] args) {    Object result = null;    if (SqlCommandType.INSERT == type) {      Object param = getParam(args);      result = sqlSession.insert(commandName, param);    }//......    } else if (SqlCommandType.SELECT == type) {      if (returnsVoid && resultHandlerIndex != null) {        executeWithResultHandler(args);//取交集 ???      } else if (returnsList) {        result = executeForList(args);//委托sqlSession.selectList      } else if (returnsMap) {        result = executeForMap(args);//委托sqlSession.selectMap      } else {    //可能返回一个自定义的类        Object param = getParam(args);        result = sqlSession.selectOne(commandName, param);      }    return result;  }

目前为止,自定义的Mapper接口的使命就完成了,所有的查询都交给SqlSession处理。那么SqlSession怎么生成的,怎么处理即成为了重点。

?

a.连接的生成、结果集的封转。

b.配置文件的解析,动态sql生成、缓存、事务

?

读书人网 >网络基础

热点推荐