mybatis源码专题(1)--------复习jdbc操作,编译mybatis源码,准备为你的简历加分吧
本文是作者原创,版权归作者所有.若要转载,请注明出处.文章中若有错误和疏漏之处,还请各位大佬不吝指出,谢谢大家.
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源码,准备为你的简历加分吧的更多相关文章
- mybatis源码专题(2)--------一起来看下使用mybatis框架的insert语句的源码执行流程吧
本文是作者原创,版权归作者所有.若要转载,请注明出处.本文以简单的insert语句为例 1.mybatis的底层是jdbc操作,我们先来回顾一下insert语句的执行流程,如下 执行完后,我们看下数据 ...
- Ubuntu12.04编译Android4.0.1源码全过程-----附wubi安装ubuntu编译android源码硬盘空间不够的问题解决
昨晚在编译源码,make一段时间之后报错如下: # A fatal error has been detected by the Java Runtime Environment: # # SIGSE ...
- MyBatis学习之简单增删改查操作、MyBatis存储过程、MyBatis分页、MyBatis一对一、MyBatis一对多
一.用到的实体类如下: Student.java package com.company.entity; import java.io.Serializable; import java.util.D ...
- mybatis学习笔记之基础复习(3)
mybatis学习笔记之基础复习(3) mybatis是什么? mybatis是一个持久层框架,mybatis是一个不完全的ORM框架.sql语句需要程序员自己编写, 但是mybatis也是有映射(输 ...
- 《python解释器源码剖析》第8章--python的字节码与pyc文件
8.0 序 我们日常会写各种各样的python脚本,在运行的时候只需要输入python xxx.py程序就执行了.那么问题就来了,一个py文件是如何被python变成一系列的机器指令并执行的呢? 8. ...
- flask 源码专题(五):SqlAlchemy 中操作数据库时session和scoped_session的区别
1原生session: from sqlalchemy.orm import sessionmaker from sqlalchemy import create_engine from sqlalc ...
- Mybatis的初始化和结合Spring Framework后初始化的源码探究
带着下面的问题进行学习: (1)Mybatis 框架或 Spring Framework 框架对数据层 Mapper 接口做了代理,那是做了 JDK 动态代理还是 CGLIB 代理? (2)Mappe ...
- flask 源码专题(二):请求上下文与全文上下文
源码解析 0. 请求入口 if __name__ == '__main__': app.run() def run(self, host=None, port=None, debug=None, lo ...
- python3-开发进阶 django-rest framework 中的 版本操作(看源码解说)
今天我们来说一说rest framework 中的 版本 操作的详解 首先我们先回顾一下 rest framework的流程: 请求进来走view ,然后view调用视图的dispath函数 为了演示 ...
随机推荐
- ALTER TABLE permission is required on the target table of a bulk copy operation if the table has triggers or check constraints, but 'FIRE_TRIGGERS' or 'CHECK_CONSTRAINTS' bulk hints are not specified
这个是使用SqlBulkCopy进行批量复制导致的异常,此问题涉及大容量导入数据时,控制大容量导入操作是否执行(触发)触发器.大容量导入操作应只对包含支持多行插入的 INSERT 和 INSTEAD ...
- 【雕爷学编程】Arduino动手做(16)---数字触摸传感器
37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...
- 【模板】树链剖分(Luogu P3384)
题目描述 众所周知 树链剖分是个好东西QWQ 也是一个代码量破百的算法 基本定义 树路径信息维护算法. 将一棵树划分成若干条链,用数据结构去维护每条链,复杂度为O(logN). 其实本质是一些数据结 ...
- HBase的安装和使用
文章作者:foochane 原文链接:https://foochane.cn/article/2019062801.html 1 Hbase基本介绍 Hbase是一个分布式数据库,可以提供数据的实时 ...
- spring boot整合mybatis框架及增删改查(jsp视图)
工具:idea.SQLyog 版本:springboot1.5.9版本.mysql5.1.62 第一步:新建项目 第二步:整合依赖(pom.xml) <dependencies> < ...
- lua_在C#中执行lua脚本
方法一:使用DoString 代码为: Lua lua = new Lua(); lua.DoString("a=13"); lua.D ...
- pytest-html报告修改与汉化
前言 Pytest框架可以使用两种测试报告,其中一种就是使用pytest-html插件生成的测试报告,但是报告中有一些信息没有什么用途或者显示的不太好看,还有一些我们想要在报告中展示的信息却没有,最近 ...
- awrcrt更新到2.17 ,添加了top SQL list
应广大Oracle专家,教授的要求(被问了很多次,什么时候添加top sql 啊~~,最近一年由于很少交付巡检类的服务,所以没有机会更新)>终于为awrcrt更新了Top SQL list,版本 ...
- Eureka(一)术语详解(用具体的事物理解抽象的概念)
最近工作较闲,所以自己研究了下eureka的原理,实现,和集群搭建等.(注:我没实操过eureka集群项目,都是自己做的demo产生的结论,如果有错误欢迎指出) 首先说一下我对eureka的一些术语的 ...
- Java连载25-方法讲解
一.方法 1.方法的基础语法 (1)例子 //需求1:请编写程序计算10和20的和,并将结果输出 int a = 10; int b = 20; System.out.print(a + " ...