本文是作者原创,版权归作者所有.若要转载,请注明出处.文章中若有错误和疏漏之处,还请各位大佬不吝指出,谢谢大家.

1.mybatis的底层是jdbc操作,我们来回顾一下,如下

 运行以后的结果如下图:(我们可以和后面mybatis框架的结果验证一下)

2.下载mybatis源码并编译

我们先去github下载mybatis源码,我们就下载最新的master版本 如下:

下载完后解压到你的idea工作空间下,再打开,如图

点击ok,右键pom.xml,选择add as maven project:如图

等它加载完以后,我们发现这里报错:

没关系,这是一个maven插件,我们直接把它注释了就好.

(如果这里发现依赖下载不下来,可以删除项目中.idea文件夹和.iml文件,然后关闭项目,查看本地文件夹中是否已经删除,若已删除,可以重新按照上面的方法打开那个工程文件夹,然后我们利用idea的maven插件编译mybatis源码,,先clean,再install一下,如下图

它就会重新编译了)

3.我们直接在源码中写个demo测试一下mybatis是否可以正常使用

我们直接在test目录下建个自己的包,用于测试.如下图

这里我贴一下主要的代码,依次是mybatis环境配置xml,mapper目录下的用于写sql的xml文件,以及测试类

运行一下,我们可以看到结果如下图

 我们可以看到,结果和原生jdbc的完全一致,至此,我们的mybatis源码编译完成.

为什么我们要编译源码呢,因为我们可以在编译好的源码上写我们自己的一些理解和注释,并将它们提交到github上,也为你的简历增添一丝光彩

本文编译完的源码已经传到github上,有需要的可以直接下载 地址是:https://github.com/lusaisai1019/mybatis-master.git

下面几篇博客我会深入mybatis底层源码,并写上我自己的注释,然后提交到github上.

mybatis源码专题(1)--------复习jdbc操作,编译mybatis源码,准备为你的简历加分吧的更多相关文章

  1. mybatis源码专题(2)--------一起来看下使用mybatis框架的insert语句的源码执行流程吧

    本文是作者原创,版权归作者所有.若要转载,请注明出处.本文以简单的insert语句为例 1.mybatis的底层是jdbc操作,我们先来回顾一下insert语句的执行流程,如下 执行完后,我们看下数据 ...

  2. Ubuntu12.04编译Android4.0.1源码全过程-----附wubi安装ubuntu编译android源码硬盘空间不够的问题解决

    昨晚在编译源码,make一段时间之后报错如下: # A fatal error has been detected by the Java Runtime Environment: # # SIGSE ...

  3. MyBatis学习之简单增删改查操作、MyBatis存储过程、MyBatis分页、MyBatis一对一、MyBatis一对多

    一.用到的实体类如下: Student.java package com.company.entity; import java.io.Serializable; import java.util.D ...

  4. mybatis学习笔记之基础复习(3)

    mybatis学习笔记之基础复习(3) mybatis是什么? mybatis是一个持久层框架,mybatis是一个不完全的ORM框架.sql语句需要程序员自己编写, 但是mybatis也是有映射(输 ...

  5. 《python解释器源码剖析》第8章--python的字节码与pyc文件

    8.0 序 我们日常会写各种各样的python脚本,在运行的时候只需要输入python xxx.py程序就执行了.那么问题就来了,一个py文件是如何被python变成一系列的机器指令并执行的呢? 8. ...

  6. flask 源码专题(五):SqlAlchemy 中操作数据库时session和scoped_session的区别

    1原生session: from sqlalchemy.orm import sessionmaker from sqlalchemy import create_engine from sqlalc ...

  7. Mybatis的初始化和结合Spring Framework后初始化的源码探究

    带着下面的问题进行学习: (1)Mybatis 框架或 Spring Framework 框架对数据层 Mapper 接口做了代理,那是做了 JDK 动态代理还是 CGLIB 代理? (2)Mappe ...

  8. flask 源码专题(二):请求上下文与全文上下文

    源码解析 0. 请求入口 if __name__ == '__main__': app.run() def run(self, host=None, port=None, debug=None, lo ...

  9. python3-开发进阶 django-rest framework 中的 版本操作(看源码解说)

    今天我们来说一说rest framework 中的 版本 操作的详解 首先我们先回顾一下 rest framework的流程: 请求进来走view ,然后view调用视图的dispath函数 为了演示 ...

随机推荐

  1. temperatureConversion1

    (原题:https://www.python123.io/student/courses/934/groups/8102/problems/programmings/6078) Solution: # ...

  2. [SCOI2009]粉刷匠(动态规划,序列dp,背包)

    分别对每块木板做区间dp,设\(g[i][j]\)表示前i个格子,刷恰好j次,并且第i格是合法的最多合法的格子数.从前往后枚举断点来转移就好了. 这样处理再出来\(g[i][j]\)每一块木板i刷j次 ...

  3. 2014-09~11Removeapp配置篇

    金蝶ERP软件  Windows REMOVEAPP 功能需求:将服务器端金蝶客户端软件直接在本地实现,只需输入服务器密码即可启动该软件 配置需求:可用的金蝶软件,SERVER2008 或更高(必须激 ...

  4. cogs 80. 石子归并 动态规划

    80. 石子归并 ★★   输入文件:shizi.in   输出文件:shizi.out   简单对比时间限制:1 s   内存限制:128 MB 设有N堆沙(shi)子排成一排,其编号为1,2,3, ...

  5. 基于.net EF6 MVC5+WEB Api 的Web系统框架总结(2)-业务项目搭建

    本节将介绍如何进行业务项目搭建. 本业务项目示例是简单的企业信息管理功能,业务项目采用Code First方式,搭建包括: 创建实体项目 创建实体数据表映射 创建业务处理项目 创建业务Web项目 搭建 ...

  6. unity之游戏特效

    一.运动轨迹 运动轨迹常常用于表现武器的挥舞效果,在提高速度感的同时又能让玩家看清楚招式动作,所以是常见的一种格斗特效. Unity中可以直接使用TrailRender来实现该效果. 二.运动模糊 运 ...

  7. lua_基本语法

    学习lua,首先应该了解热更新. 热更新:可以在不重新下载客户端的情况下更新软件内容.在使用软件过程中,我们经常会遇到这种情况:升级软件,没错,这就使用的是热更新. C#不能直接热更新,原因为:C#脚 ...

  8. ES5新增数组方法测试和字符串常见API测试

    首先是ES5新增数组方法测试: <!DOCTYPE html><html lang="en"><head> <meta charset=& ...

  9. 从零开始搭建Java开发环境第二篇:如何在windows10里安装MySQL

    1 下载安装包 1.1 压缩包 https://dev.mysql.com/downloads/mysql/ [外链图片转存失败(img-oesO8K09-1566652568838)(data:im ...

  10. 微信小程序捕获async/await函数异常实践

    背景 我们的小程序项目的构建是与web项目保持一致的,完全使用webpack的生态来构建,没有使用小程序自带的构建功能,那么就需要我们配置代码转换的babel插件如Promise.Proxy等:另外, ...