Mybatis是一个半orp框架,说是半,也就是不完全是,还有很多地方是需要开发人员完成的。发现很多互联网公司使用Mybatis,而不是hibernate。应该是因为Mybatis不但有orp的优势,同时还可以更加灵活高效的控制DB的读写。

Mybatis框架分两块:一、启动,框架启动是读取配置文件初始化;二、调用,用户调用mapper接口,框架实现接口读写数据库,返回结果集。

启动

Mybatis的配置文件有两部分,config.xml Mybatis的主配置文件,也叫全局配置文件;mapper.xml Mybatis的object table mapper配置文件,对每个业务实体的对象与表的mapper关系。

Mybatis启动时,先读取配置文件config.xml 主配置文件,加载Mybatis的全局配置,比如缓存、数据源等,后面在加载每个mapper.xml文件的路径。然后读取每个mapper.xml 配置文件,读取mapper关系,形成statement对象列。

调用

用户命名mapper接口,Mybatis根据mapper接口,利用动态代理生成mapper接口的实现。为接口生成对象,让开发用户直接使用。

Mybatis生成mapper接口的实现时,内部调用jdbc的实现,然后获取resultset对象,封装成对象,返回给用户。

mybatis总体分析的更多相关文章

  1. mybatis源代码分析:mybatis延迟加载机制改进

    在上一篇博客<mybatis源代码分析:深入了解mybatis延迟加载机制>讲诉了mybatis延迟加载的具体机制及实现原理. 可以看出,如果查询结果对象中有一个属性是需要延迟加载的,那整 ...

  2. MyBatis原理分析

    MyBatis原理分析   参考博客: 深入理解mybatis原理: http://blog.csdn.net/luanlouis/article/details/40422941 一 . JDBC的 ...

  3. DIY.NETORM框架——总体分析

    一.故事 近些年一直开发MIS系统,用过PB,VB,C#  .如今学了半年的java,早先听人说,.NET和 java一直就是互相借鉴.一起升级.都是为了让程序开发趋于简单,高校,而这不可避免就肯定用 ...

  4. mybatis 04: mybatis对象分析 + 测试代码简化 + 配置优化

    MyBatis对象分析 测试代码示例 package com.example.test; import com.example.pojo.Student; import org.apache.ibat ...

  5. Mybatis原理分析之二:框架整体设计

    1.引言 本文主要讲解Mybatis的整体程序设计,理清楚框架的主要脉络.后面文章我们再详细讲解各个组件. 2.整体设计 2.1 总体流程 (1)加载配置并初始化       触发条件:加载配置文件 ...

  6. Mybatis原理分析之一:从JDBC到Mybatis

    1.引言 本文主要讲解JDBC怎么演变到Mybatis的渐变过程,重点讲解了为什么要将JDBC封装成Mybaits这样一个持久层框架.再而论述Mybatis作为一个数据持久层框架本身有待改进之处. 2 ...

  7. mybatis源代码分析:深入了解mybatis延迟加载机制

    下文从mybatis(3.2.7)延迟加载样例讲起,逐步深入其实现机制. 下面的例子是Student类关联一个Teacher对象,在访问Student对象时,不立即加载其关联的Teacher对象,而是 ...

  8. Mybatis 缓存分析

    其实本来不想专门的写一篇关于mybatis缓存的博客的.在之前的博客中已经大致的把mybatis的整体流程讲了一遍.只要按照步骤一步步的点进去,关于缓存的代码很容易就能发现.但是今天在看代码的时候突然 ...

  9. mybatis异常分析jdbcType

    Exception in thread "main" org.springframework.jdbc.UncategorizedSQLException: Error setti ...

随机推荐

  1. docker部署jar、war包方法

    一.将war包放入容器 1.# docker imagesREPOSITORY                         TAG                 IMAGE ID         ...

  2. json xml 传值方法

    1.xml传值 xml传值的方式更加的安全. <id>1</id> <name>tom</name> 报文 2.JSON传值 JOSN的格式:3种 1. ...

  3. Windows10和Windows Server 2019支持OpenSSH

    从 Win10 1809 和 Windows Server 2019 开始 Windows 开始支持 OpenSSH Server.本文介绍一下其基本的概念和配置方法,本文演示用的环境为 Win10 ...

  4. 【VS开发】uafxcwd.lib(afxmem.obj) : error LNK2005: 已经在 LIBCMTD.lib(new.obj) 中定义错误解决方案

    如果在编译MFC程序的时候出现下列及类似的错误: 1>uafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator ...

  5. Kafka如何实现每秒上百万的高并发写入

    Kafka是高吞吐低延迟的高并发.高性能的消息中间件,在大数据领域有极为广泛的运用.配置良好的Kafka集群甚至可以做到每秒几十万.上百万的超高并发写入. 那么Kafka到底是如何做到这么高的吞吐量和 ...

  6. Springmvc使用注解实现执行定时任务(定时器)

    1.在Spring配置文件中添加 <task:annotation-driven/> 2.在需要调用执行定时任务的类中使用注解 @Service @Lazy(false) //避免spri ...

  7. 虚拟机ubuntu连不上网

    虚拟机ubuntu连不上网 解决地址:https://blog.csdn.net/spy_h/article/details/80933458

  8. Redis服务端相关

    全局命令: 查看所有键: keys * 键总数: dbsize 检查键是否存在: exists key 删除键: del key [key...] 键过期: expire key seconds 键的 ...

  9. 【sublime Text】sublime Text3安装可以使xml格式化的插件

    应该有机会 ,会碰到需要格式化xml文件的情况. 例如,修改word转化的xml文件之后再将修改之后的xml文件转化为word文件. 但是,word另存的xml文件是没有格式的一片: 那怎么格式化 这 ...

  10. unity ugui image更换图片

    1:利用资源加载方式 using UnityEngine; using System.Collections; using UnityEngine.UI; public class ChangeIma ...