MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

功能架构

我们把Mybatis的功能架构分为三层:

(1) API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。

(2) 数据处理层:负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库操作。

(3) 基础支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西,将他们抽取出来作为最基础的组件。为上层的数据处理层提供最基础的支撑。

框架架构

框架架构讲解:

(1) 加载配置:配置来源于两个地方,一处是配置文件,一处是Java代码的注解,将SQL的配置信息加载成为一个个MappedStatement对象(包括了传入参数映射配置、执行的SQL语句、结果映射配置),存储在内存中。

(2) SQL解析:当API接口层接收到调用请求时,会接收到传入SQL的ID和传入对象(可以是Map、JavaBean或者基本数据类型),Mybatis会根据SQL的ID找到对应的MappedStatement,然后根据传入参数对象对MappedStatement进行解析,解析后可以得到最终要执行的SQL语句和参数。

(3) SQL执行:将最终得到的SQL和参数拿到数据库进行执行,得到操作数据库的结果。

(4) 结果映射:将操作数据库的结果按照映射的配置进行转换,可以转换成HashMap、JavaBean或者基本数据类型,并将最终结果返回。

Mybatis学习教程

推荐大家去看动力节点的mybatis教程,讲的无比详细,让你可以在最短的时间内学会使用持久层框架MyBatis,在视频中没有废话,都是干货,视频的讲解不是学术性研究,项目中用什么,这里就讲什么,如果你现在项目中马上要使用MyBatis框架,那么只需要学习完此教程,就可以顺利的使用MyBatis开发了。

http://www.bjpowernode.com/?csdn

适用人群

适合懂一些Java基础语法,会编写常见的简单的SQL语句,了解过JDBC编程的

学习目录

001.MyBatis-001-三层架构

002.MyBatis-002-框架概念

003.MyBatis-003-jdbc缺陷

004.MyBatis-004-MyBatis能做什么

005.MyBatis-005-使用步骤

006.MyBatis-006-创建mapper文件

007.MyBatis-007-创建主配置文件

008.MyBatis-008-创建SqlSession执行sql语句

009.MyBatis-009-复习第一个例子

010.MyBatis-010-开发常见问题

011.MyBatis-011-三种处理方式

012.MyBatis-012-配置日志

013.MyBatis-013-SqlSessionFactory和SqlSession对象介绍

014.MyBatis-014-工具类使用

015.MyBatis-015-传统dao使用方式

016.MyBatis-016-传统dao执行insert

017.MyBatis-017-传统dao的执行分析

018.MyBatis-018-使用动态代理的条件分析

019.MyBatis-019-动态代理getMapper

020.MyBatis-020-动态代理使用例子

021.MyBatis-021-parameterType使用

022.MyBatis-022-传参-一个简单类型

023.MyBatis-023-MyBatis是封装的jdbc操作

024.MyBatis-024-命名参数

025.MyBatis-025-使用对象传参

026.MyBatis-026-按位置传参

027.MyBatis-027-Map传参

028.MyBatis-028-两个占位符比较

029.MyBatis-029-使用占位替换列名

030.MyBatis-030-复习

031.MyBatis-031-复习传参数

032.MyBatis-032-resultType使用

033.MyBatis-033-定义别名

034.MyBatis-034-查询返回Map

035.MyBatis-035-列名和属性名不同二种解决方案

036.MyBatis-036-Like查询两种方案

037.MyBatis-037-补充文档

038.MyBatis-038-动态sql概念

039.MyBatis-动态sql-if

040.MyBatis-动态sql-where

041.MyBatis-动态sql-foreach

042.MyBatis-动态sql-代码片段

043.MyBatis-补充文档

044.MyBatis-主配置文件DataSource

045.MyBatis-数据库属性配置文件

046.MyBatis-指定多个mapper文件的方式

047.MyBatis-页面是什么

048.MyBatis-PageHeloper使用步骤

049.MyBatis-补充文档

MyBatis入门到精通,最全最详细的MyBatis学习教程来了相关推荐

  1. Mybatis从入门到精通(全)

    目录 前言 1. idea软件小技巧 2. mybatis优势 3. mybatis入门项目 3.1 项目具体步骤 3.2 创建数据表 3.3 创建maven项目 3.4 pom.xml配置文件 3. ...

  2. Docker零基础从入门到精通(全)

    目录 前言 1. Docker介绍 1.1 Docker的安装 1.2 Docker的卸载 2. 配置阿里云镜像加速 3. Docker原理 3. docker常用命令 3.1 镜像命令 3.2 容器 ...

  3. ActiveMQ从入门到精通(全)

    目录 前言 1. 定义 2. 安装及配置 2.1 控制台访问 2.2 新建项目 2.3 配置文件 3. 队列案例 3.1 JMS编码 3.2 消息生产者 3.3 消息消费者 3.4 监听式消费者 3. ...

  4. JUC高并发编程从入门到精通(全)

    目录 前言 1. Lock接口 1.1 复习synchronized 1.2 Lock接口 1.3 Lock方法 1.4 两者差异 2. 线程间通信 2.1 synchronized案例 2.2 Lo ...

  5. jQuery从入门到精通(全)

    目录 前言 1. jQuery入门例子 2. DOM对象和jQuery对象 2.1 dom对象转jQuery对象 2.2 jQuery对象转dom对象 3. 选择器 3.1 基本选择器 3.2 全部选 ...

  6. Dubbo从入门到精通(全)

    目录 前言 1. 分布式系统 1.1 发展演变 1.2 PRC 2. dubbo核心概念 3. dobbo环境搭建 3.1 zookeeper 3.2 监控中心 4. 入门项目 4.1 无dubbo ...

  7. SpringMVC从入门到精通(全)

    目录 1. SpringMVC简介 1.1 MVC 1.2 SpringMVC 2. 入门案例 2.1 引入依赖包 2.2 配置xml文件 2.3 创建请求控制器 2.4 springMVC配置文件 ...

  8. python编程从入门到精通pdf-码哥—-Python从入门到精通(全60集),资源教程下载...

    课程名称 码哥--python从入门到精通(全60集),资源教程下载 课程目录 1Python编程语言历史及特性 2Python编程语言初接触 3Python程序文件结构 4准备Python编程环境 ...

  9. SolidWorks2015入门到精通视频教程 全20集百度网盘

    SolidWorks2015入门到精通视频教程 全20集,百度网盘下载 https://pan.baidu.com/s/1c2u1rUS#list/path=%2F

  10. python从入门到精通最全总结

    python从入门到精通最全总结 python项目总结 一.python入门到精通总结 1.pip 安装和使用 1.1安装 1.2使用 1.3pip批量安装软件包 (这是重点单拿出来) 2.virtu ...

最新文章

  1. LeetCode 98. Validate Binary Search Tree--C++解法--判断是否是BST--递归,迭代做法,中序遍历
  2. id和class到底要用哪一个?
  3. 数据结构与算法 —— 二叉树
  4. C~K要找女朋友了!!!_JAVA
  5. 【笔记】 感受野与权值共享 摄像头标定 相机坐标与世界坐标
  6. CodeForces - 706D Vasiliy's Multiset(字典树删除操作)
  7. python自动登录教程_Python 实现自动登录+点击+滑动验证功能
  8. Vue(ES6)中的data属性为什么不能是一个对象?
  9. C++程序设计语言(特别版) -- 一个桌面计算器
  10. 【转】3.4(译)构建Async同步基元,Part 4 AsyncBarrier
  11. Java8学习笔记(七)--Collectors
  12. Function(洛谷-P1464)
  13. 「べきだ」、「わけだ」、「はずだ」在使用中,都有“ 应该 ”的含意
  14. php 管理数组数据库,【PHP】一个用PHP数组管理数据库表结构更新功能的烂代码~...
  15. 排序算法专题-选择排序
  16. 为什么JDK6中的substring()方法会导致内存泄露?
  17. 实现xtrabackup全量备份与全量恢复
  18. GPS卫星定位—python实现
  19. 修复windows修复引导_如何使用安全模式修复Windows PC(以及何时应该修复)
  20. 自己搭建云存储(WIFI路由器上接硬盘)

热门文章

  1. java测试用例怎么写_Java测试用例编写规则
  2. 《Android游戏编程之从零开始》
  3. 自动化运维工具ansible简介
  4. map转json字符串字段排序
  5. C语言 实现学生管理系统(手把手教学)
  6. everything指定搜索路径
  7. java接收前端JSON字符串
  8. 精心收集了60个C语言项目源码,分享给大家
  9. 功能强大的云打印组件-开始使用
  10. c++builder 代码格式化工具 AStyle