在这里分享一份 [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个,而且各个模块的业务逻辑也比较复杂,这些对初学者可能有一定难度, 但只要读者先认真阅读本书前面所介绍的知识,并结合上述的讲解,再配合资源文件中的案例代码,则一定可以掌握这里所介绍的内容,也是将理论知识应用到实际开发的典范

最后

提供一下免费的Java架构学习资料给大家,学习技术内容包含有:Spring,Dubbo,MyBatis, RPC, 源码分析,高并发、高性能、分布式,性能优化,微服务 高级架构开发等等。

需要的朋友可以戳这里免费领取

还有Java核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板可以领取+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书+2021年最新大厂面试题。

还有Java核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板可以领取+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书+2021年最新大厂面试题。

阿里P8大牛亲自讲解!java实战第二版pdf下载相关推荐

  1. 又是一年金九银十!java实战第二版pdf下载

    一. 什么是架构和架构本质 在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解. 此君说的架构和彼君理解的架构未必是一回事.因此我们在讨论架构之前,我们先讨论架构的概念定义,概念是人认识 ...

  2. 2-1 分布式文件存储系统Ceph,java实战第二版pdf拉乌尔

    yum install ntp ntpdate ntp-doc -y 设为开机启动: systemctl enable ntpd 设置每隔1小时自动校准同步.编辑 vi /etc/rc.d/rc.lo ...

  3. RocketMQ 5,linux驱动开发入门与实战第二版pdf

    RocketMQ 从设计之初就立足于在线交易链路,因此主要应用在大型在线系统的异步化处理. 历经十年发展,目前的大规模落地场景有:电商物流的交易系统.在线教育课程系统.大型游戏信令系统.以及银行交易系 ...

  4. 阿里P8大佬亲自讲解!朝阳java培训

    开头 Spring框架自诞生以来一直备受开发者青睐,有人亲切的称之为:Spring 全家桶.Spring更是避免了重复造轮子的工作并跟随着互联网行业的发展做出不断的更新,很多研发人员把spring看作 ...

  5. 阿里P8大神讲解——Java,JVM内存模型

    在Java程序界流行着一种默认的说法叫"黄金5年",也就是一个程序员从入职的时间开始算起,前五年的选择直接影响着整个职业生涯发展方向和薪资走向. 如何走好这5年很关键,如何彻底从一 ...

  6. 阿里P8大牛亲自教你!史上最全的Android面试题集锦,这原因我服了

    一.架构师专题 想要掌握复杂的技术,必须要理解其原理和架构.本模块结合实际一线互联网大型项目理解架构思维,抽丝剥茧,层层深入,帮助大家成为Android架构师,在思想上对架构认识有一次升华,并知其所以 ...

  7. 阿里P8大牛亲自教你!树莓派docker

    一面 自我介绍 项目中的监控:那个监控指标常见的有哪些? 微服务涉及到的技术以及需要注意的问题有哪些? 注册中心你了解了哪些? consul 的可靠性你了解吗? consul 的机制你有没有具体深入过 ...

  8. 阿里P8大牛总结的Java锁机制入门笔记,堪称教科书式天花板

    前言 锁机制无处不在,锁机制是实现线程同步的基础,锁机制并不是Java锁独有的,其他各种计算机语言中也有着锁机制相关的实现,数据库中也有锁的相关内容.这篇文章就是从Java入手,深入学习.理解Java ...

  9. python程序设计基础第二版pdf下载_Python程序设计基础董付国课后答案-Python程序设计基础第二版清华大学出版社PDF电子版完整高清版-精品下载...

    Python程序设计基础(第2版)完全面向Python 3.x,全部案例代码使用Python 3.5.x和Python 3.6.x编写,大部分内容也同样适用于Python 3.4.x.本书对Pytho ...

最新文章

  1. 计算机网络:大小端存储
  2. Dell T620大硬盘安装Win2008R2
  3. 杭电Color the ball1556
  4. getsockname与getpeername用法与区别
  5. oracle按时间点还原数据
  6. Docker镜像(image)详解
  7. 好的物联网开源框架_通过开源文化实现更好的物联网
  8. RabbitMq、ActiveMq、ZeroMq、kafka比较
  9. Hbase具体操作(图文并茂且超超全~~~)
  10. (转)Dinkelbach算法(01二分规划更优解法)
  11. BZOJ5224[Lydsy2017省队十连测] 毁灭
  12. 数据库——添加外键约束
  13. 电磁场仿真原理——5. 有限元法(FEM)
  14. Java中的Ant与Maven比较整理
  15. 2021年P气瓶充装模拟考试及P气瓶充装考试试题
  16. 原生安卓X86 TV安装配置
  17. October CMS
  18. android 关闭软键盘失去焦点,Android edittext 点击其他处 失去焦点和关闭软键盘
  19. AE影视后期之跳跃音符制作
  20. 火遍日本 IT 界的「鱼书」终出续作,原来进阶深度学习竟然那么简单

热门文章

  1. UE5/C++ 基于GAS的怪物AI 6.2.1 AIController中寻敌方法
  2. Python raise用法
  3. 息福欣真的能治疗胆囊息肉吗?
  4. (PTA)7-3 选民投票 编程统计候选人的得票数。有若干位候选人(n<=10),候选人姓名从键盘输入(候选人姓名不区分大小写,姓名最长为9个字节),若干位选民,选民每次输入一个得票的候选人的名字
  5. 函数句柄matlab
  6. 艺术家众筹赞助网站patreon赞助说明
  7. 查询江苏丹阳高考成绩2021,2021年丹阳市高考状元名单资料,今年丹阳市高考状元多少分...
  8. 基于javaweb+mysql的校园兼职管理系统(java+SSM+Jsp+Mysql)
  9. python字典排序lambda表达式使用
  10. 编程风格之——版权申明