标签:size api cti eset select image 创建 sele 前言
一、前言
作为一个小菜鸟对于mybatis的理解一致处于仅会用,典型的API程序员,今天正好有功夫,就稍微的解读一下源码,嘿嘿嘿~
首先我们先创建maven,引入mybatis和MySQL链接包巴拉巴拉巴~~~
不详说,太复杂,不是今天的核心。
我们从这里入手,查看实现。
第一个有趣点来了,我发现这里有一顿套娃,疯狂调用本class的方法,换言之,这里本来有很多参数,但是都设置了默认值,这些参数是什么,又默认了什么就是本次解析的核心了
二、参数
@Override public <E> List<E> selectList(String statement, Object parameter, RowBounds rowBounds) { try { MappedStatement ms = configuration.getMappedStatement(statement); return executor.query(ms, wrapCollection(parameter), rowBounds, Executor.NO_RESULT_HANDLER); } catch (Exception e) { throw ExceptionFactory.wrapException("Error querying database. Cause: " + e, e); } finally { ErrorContext.instance().reset(); } }
看到有三个参数,分别是statement,parameter,rowBounds;
我们只传入了statement
A parameter object to pass to the statement.
译文:要传递给语句的参数对象。
rowBounds 解释
Bounds to limit object retrieval
译文:限制对象检索的边界
三、默认值
rowBounds是一个default对象
public static final RowBounds DEFAULT = new RowBounds();
而 parameter 默认值为空
那么他是怎么获得对象呢?
查到最后传了一个
Class<?> parameterType = parameterObject == null ? Object.class : parameterObject.getClass();
传了一Object对象
吐了 看不懂 以后再说吧
标签:size api cti eset select image 创建 sele 前言
原文地址:https://www.cnblogs.com/cnbk/p/13060922.html