在这里分享一份 [mybatis从入门到精通] 的强力教程,定能够助你一臂之力。

Mybatis基本介绍

  1. ORM和MyBatis
  2. 对象/关系数据库映射(ORM)
  3. 基本映射方式
  4. 流行的ORM框架简介

目前流行的编程语言,例如Java、 C#等,都是面向对象的编程语言;而目前主流的数据库产品,例如Oracle、DB2等,依然是关系数据库。编程语言和底层数据库的发展不协调,催生出了ORM框架,ORM框架可作为面向对象编程语言和数据库之间的桥梁。

确切地说,MyBatis 并不完全是一种ORM框架,它的设计思想和ORM相似,只是它允许开发,人员直接编写SQL语句,使得访问数据库更加灵活,更准确地说,它应该是一种“SQL Mapping”框架。

Mybatis的体系结构

  1. SqlSessionFactory
  2. SqlSession
  3. MyBatis的配置文件结构
  4. settings设置
  5. typeAliases类型命名
  6. typeHandlers类型处理器
  7. objectFactory对象工厂
  8. environments配置环境
  9. mapper映射器

通过前面的介绍可以知道,MyBatis 的持久化解决方案将用户从原始的JDBC访问中解放出来,用户只需要定义需要操作的SQL语句,无须关注底层的JDBC操作,就可以面向对象的方式进行持久层操作。底层数据库连接的获取、数据访问的实现、事务控制等都无须用户关心,从而将应用层从底层的JDBC/JTAAPI抽取出来。通过配置文件管理JDBC连接,让MyBatis解决持久化访问的实现。

MyBatis中的常用对象有SqSessionFactory和SlSession。

Mybatis的关联映射和动态SQL

  1. 一对一
  2. 一对多
  3. 多对多
  4. 动态SQL

关联关系是面向对象分析、面向对象设计最重要的知识,MyBatis完全可以理解这种关联关系,如果映射得当,MyBatis的关联映射将可以大大简化持久层数据的访问。关联关系大致有如下分类。

Mybatis的事务管理以及缓存机制

  1. 事务的概念
  2. Transaction接口
  3. 事务的配置创建和使用
  4. 一级缓存( SqlSession级别)
  5. 二级缓存(mapper级别)

每个业务逻辑都是由一系列数据库 访问完成的,这-系列数据库访间可能会修改多条数据记录,这一系列修改应该是一个整体,绝不能仅修改其中的几条数据记录。也就是说,多个数据库原子访问应该被绑定成一个整体,这就是事务。事务是一个最小的逻辑执行单元,整个事务不能分开执行,要么同时执行,要么同时放弃执行。

Mybatis注解配置

  1. MyBatis常用注解
  2. MyBatis注解的插入、修改、删除和查询操作
  3. MyBatis注解的一对一、一对多和多对多操作
  4. MyBatis注解的动态SQL

前面介绍了MyBatis的基本用法、关联映射、动态SQL和缓存机制等知识,其所有的配置都是使用XML完成,但是大量的XML配置文件的编写是非常繁琐的,因此MyBatis也提供了更加简便的基于注解(annotation) 的配置方式。

Spring4整合Mybatis3

  1. 开发环境搭建
  2. 准备所需的jar包
  3. 准备数据库资源
  4. 完成配置文件
  5. 持久层功能实现
  6. 服务层功能实现
  7. 控制层功能实现
  8. jsp页面
  9. 测试Spring4整合MyBatis3

在实际的项目开发中,我们需要将Spring和MyBatis进行整合,从而使用Spring 依赖注入以减少代码的耦合,使用Spring MVC处理请求并作出响应,使用MyBatis更加简捷地完成数据库操作。这里将重点介绍Spring和MyBatis的整合过程。

文档的最后一部分是项目实战

  1. 人事管理系统功能模块设计
  2. 人事管理系统持久化组件设计
  3. 人事管理系统业务逻辑组件设计
  4. Spring MVC整合MyBastis优势

最后将会综合运用前面所介绍的知识来开发一个简单的人事管理 (HRM)系统。该系统包括用户管理、部门管理、职位管理、员工管理、公告管理、下载中心等常用的人事管理系统功能。

本系统采用前面介绍的Java EE架构: Spring MVC + MyBatis3.4,该系统架构成熟,性能良好,运行稳定。Spring的IOC容器负责管理业务逻辑组件、持久层组件及控制层组件,这样可以充分利用Spring的依赖注入的优势,进一步增强系统的解耦性,从而提高应用的可扩展性,降低系统重构的成本。

这里详细介绍了一个完整的JavaEE项目:人事管理系统,在此基础上可以扩展出企业的HRM系统、OA系统等。因为企业平台本身的复杂性,所以本项目涉及的表达到6个,而且各个模块的业务逻辑也比较复杂,这些对初学者可能有一定难度, 但只要读者先认真阅读本书前面所介绍的知识,并结合上述的讲解,再配合资源文件中的案例代码,则一定可以掌握这里所介绍的内容,也是将理论知识应用到实际开发的典范

最后

作为过来人,小编是整理了很多进阶架构视频资料、面试文档以及PDF的学习资料,针对上面一套系统大纲小编也有对应的相关进阶架构视频资料,如果**‘你’确定好自己未来的道路或者想学习提升自己技术栈、技术知识的小伙伴们可以点击这里来获取免费学习资料提升自己(全套面试文档、PDF、进阶架构视频)**


试文档、PDF、进阶架构视频)**

[外链图片转存中…(img-2LFbbC7N-1624358215133)]
[外链图片转存中…(img-t7mvwHsn-1624358215133)]

大厂必备!springboot入门菜鸟教程,面试资料分享相关推荐

  1. python菜鸟基础教程-终于懂得python入门菜鸟教程

    Python语言是一种典型的脚本语言,简洁,语法约束少,接近人类语言.有丰富的数据结构,例如列表.字典.集合等.具有可移植性,支持面向过程和面向对象编程,并且开源.以下是小编为你整理的python入门 ...

  2. python基础教程菜鸟教程-终于懂得python入门菜鸟教程

    Python语言是一种典型的脚本语言,简洁,语法约束少,接近人类语言.有丰富的数据结构,例如列表.字典.集合等.具有可移植性,支持面向过程和面向对象编程,并且开源.以下是小编为你整理的python入门 ...

  3. 菜鸟教程css事件,【推荐】DIV+CSS入门菜鸟教程

    这篇文章主要为大家详细介绍了[推荐]DIV+CSS入门菜鸟教程,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小编罗X来看看吧. CSS功能复杂多变,大多数新手莫不着 ...

  4. 2021年Android工作或许更难找,面试资料分享

    我们程序员经常迷茫于有太多东西要学,有些找不到方向.不知所措. 很多程序员都愿意说,我想变得更好,但是更好是什么却很模糊,同时我们又不知道该怎么样去做.我们的生命如此短暂,作为程序员的职业生涯可能会更 ...

  5. springboot 入门详细教程 源码

    转载知乎文章 gitee官方教程+开源项目 Gitee ​ 已认证的官方帐号 1,303 人赞同了该回答 推荐以 Spring Boot 教程与 Spring Cloud 教程的详细开源项目 &quo ...

  6. springboot入门系列教程|第九篇:springboot实现图片上传与显示(附源码)

    前言## 上一篇我们介绍了springboot如何实现自定义拦截器配合注解使用,那么这篇我们将介绍springboot实现图片上传的功能. 目录## 文章目录 前言## 目录## 项目创建### 项目 ...

  7. Springboot入门案例教程

    ​ 从springboot的入门案例中,我们可以体会到springboot的便捷之处,使用Spring Initializer创建一个项目,然后写一个controller层就可以运行起来,我们啥也没配 ...

  8. 我建了个内推群,有大厂内推+简历辅导和面试资料……

    你找工作,是不是:一边打开BOSS.拉勾.猎聘--不断刷新自己的简历,一边心想这家伙怎么聊着聊着就没信了??合不合适好歹吱个声! 程序员现在找工作可不比当年,又卡学历又卡经验,面试还贼难,经历过的人都 ...

  9. SQLite3数据库的快速入门菜鸟教程

    SQLite3是一个轻量级嵌入式数据库,其主要有以下的特点: 1.零配置无需安装和管理配置: 2.储存在单一磁盘文件中: 3.数据库文件可在不同字节序的机器自由共享: 4.比目前流行的大多数数据库对数 ...

最新文章

  1. 在请求分页虚存管理系统中_请求分页式系统中,以页为单位管理用户的虚空间,以段为单位管理内存空间_学小易找答案...
  2. iOS开发-单例模式
  3. 图像处理和计算机视觉中的经典论文(部分)
  4. Java中怎样创建线程安全的方法
  5. php 数组格式的字符串转为数组_php将字符串转换为数组实例讲解
  6. 新安装和已安装nginx如何添加未编译安装模块/补丁
  7. 拼多多开始卖车了!3.49万秒杀五菱宏光...
  8. Linux虚拟文件系统:数据结构与文件系统注册、文件打开读写
  9. js点击a链接弹出alert对话框
  10. python训练聊天机器人词库_Python实现聊天机器人的示例代码
  11. 数字逻辑练习题(七) 用74LS138译码器和门电路实现逻辑函数
  12. 最全的Java多线程面试题
  13. e480Linux无法发现无线网卡,ThinkPad无线不能用无法连接无线网络的具体排查流程图解...
  14. Android 源码之Recovery升级的过程和问题分析
  15. 长大后自卑的孩子,大多出自这几种家庭,别不当回事(给已经做父母或未来即将为人父母的你)
  16. 转置卷积详解(原理+实验)
  17. 百度飞桨第一课--让人拍案叫绝的创意都是如何诞生的?
  18. VRIK+Unity XR Interaction Toolkit 配置 VR 全身模型(下):实现腿部行走动画
  19. 让明日科技今日成真,Mali-G72有何妙招?
  20. 30 秒看懂,如何建立一个免费的个人主页

热门文章

  1. JavaFX: 导入ikonli-master
  2. 手把手教你学习单片机-硬件基础知识
  3. C#从windows剪贴板粘贴内容的代码
  4. IdentityServer4实战详解
  5. 活字格低代码开发平台怎么样?靠谱吗?
  6. 我的世界服务器物品修改器,ReadyEditor全备编辑————基于箱子菜单的物品编辑器[1.14+]...
  7. vba autofilter 筛选
  8. excel内容拆分怎么做?
  9. 51单片机c语言按键扫描程序,单片机按键扫描数码管显示C语言程序
  10. TCP和UDP协议常用端口汇总