码迷,mamicode.com
首页 > 其他好文 > 详细

又见mybaits之selectall源码解析

时间:2020-06-07 16:31:13      阅读:108      评论:0      收藏:0      [点我收藏+]

标签: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();
    }
  }

 

看到有三个参数,分别是statementparameterrowBounds

我们只传入了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对象

吐了 看不懂 以后再说吧

 

又见mybaits之selectall源码解析

标签:size   api   cti   eset   select   image   创建   sele   前言   

原文地址:https://www.cnblogs.com/cnbk/p/13060922.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!