Mybatis源码分析二

SqlSession 接口提供数据库执行的所有方法(增删改查、提交、回滚等),在这里我们重点讨论其实现类 DefaultSqlSession。
对于数据库操作的具体实现为下图红框标出的五个方法,其余方法皆调用这五个方法来实现:
源码
该类中所有的 selectOne 方法、selectMap 方法和其他的 selectList 均调用 selectList(java.lang.String, java.lang.Object, org.apache.ibatis.session.RowBounds) 实现;
所有的 insert、delete 及其余 update 均调用
update(java.lang.String, java.lang.Object) 实现
这种处理方式值得我们在实际开发中借鉴:通过改变参数传递调用已有方法,使代码脉络清晰,从而以达到简化代码的目的。
另外需要注意的是两个成员变量:configuration 和 executor。

private final Configuration configuration;
private final Executor executor;

public DefaultSqlSession(Configuration configuration, Executor executor, boolean autoCommit) {
    this.configuration = configuration;
    this.executor = executor;
    this.dirty = false;
    this.autoCommit = autoCommit;
}

configuration 负责获取配置信息,如 Mapper 接口、映射语句、ObjectFactory、ObjectWrapperFactory、ReflectorFactory 等。如:

  @Override
  public <T> T getMapper(Class<T> type) {
    return configuration.<T>getMapper(type, this);
  }

SqlSession 将数据库执行的具体操作委托给了 Executor 来实现,如 selectList 方法:

  @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();
    }
  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的校园手书交易平台,源码+数据库+毕业论文+视频演示 信息数据从传统到当代,是一直在变革当,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲,遇到了互联网时代才发现能补上自古以来的短板,有效的提升管理的效率和业务水平。传统的管理模式,时间越久管理的内容越多,也需要更多的人来对数据进行整理,并且数据的汇总查询方面效率也是极其的低下,并且数据安全方面永远不会保证安全性能。结合数据内容管理的种种缺点,在互联网时代都可以得到有效的补充。结合先进的互联网技术,开发符合需求的软件,让数据内容管理不管是从录入的及时性,查看的及时性还是汇总分析的及时性,都能让正确率达到最高,管理更加的科学和便捷。本次开发的校园手书交易平台实现了图书信息查询。系统用到了关系型数据库MySql作为系统的数据库,有效的对数据进行安全的存储,有效的备份,对数据可靠性方面得到了保证。并且程序也具备程序需求的所有功能,使得操作性还是安全性都大大提高,让校园手书交易平台更能从理念走到现实,确确实实的让人们提升信息处理效率。 关键字:信息管理,时效性,安全性,MySql;Spring Boot
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值