MyBatis从入门到精通真没那么难!跟着我带你深入实践Mybatis技术原理与实战!

news2024/11/20 18:22:03

什么是Mybatis

mybatis 是一个优秀的基于java的持久层框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。

mybatis通过xml或注解的方式将要执行的各种 statement配置起来,并通过java对象和statement中sql的动态参数进行映射生成最终执行的sql语句。

最后mybatis框架执行sql并将结果映射为java对象并返回。采用ORM思想解决了实体和数据库映射的问题,对jdbc 进行了封装,屏蔽了jdbc api 底层访问细节,使我们不用与jdbc api 打交道,就可以完成对数据库的持久化操作。

随着大数据时代的到来,Java 持久层框架MyBatis已经成为越来越多企业的选择。但是,关于MyBatis资料又乱又杂,不成体系,这无疑增加了初学者的学习难度,初学者往往只能基于零星的案例来学习MyBatis,无法系统地掌握MyBatis,更不用说精通了。

而今天推荐的这份《深入浅出MyBatis技术原理与实战》是
通过大量实践和研究源码后创作而成的,成体系的系统介绍了MyBatis,非常适合初学者学习以及自身技术人员复习使用

本书通过3个部分,依次介绍了MyBatis的基础应用、原理及插件开发、实践应用,使读者能够由浅入深、循序渐进地掌握MyBatis技术。

目录

第1章MyBatis简介

  • 1.1传统的JDBC编程
  • 1.2ORM模型
  • 1.3Hibernate
  • 1.4MyBatis
  • 1.5什么时候用MyBatis

     

第2章MyBaits入门

  • 2.1开发环境准备
  • 2.1.1下 载MyBatis
  • 2.1.2搭建开发环境
  • 2.2 MyBatis 的基本构成.
  • 2.2.1构建 SqlSessionFactory..
  • 2.2.2创建SqlSession
  • 2.2.3映射器
  • 2.3生命周期
  • 2.3.1 SqlSessionFactoryBuilder
  • 2.3.2 SqlSessionFactory
  • 2.3.3 SqlSession
  • 2.3.4 Mapper
  • 2.4实例

     

第3章配置

  • 3.1 properties 元素
  • 3.2设置
  • 3.3别名
  • 3.4 typeHandler 类型处理器
  • 3.5 ObjectFactory.
  • 3.6插件
  • 3.7 environments 配置环境
  • 3.8 databaseldProvider 数据库厂商标识
  • 3.9引入映射器的方法

第4章映射器

  • 4.1映射器的主要元素
  • 4.2 select 元素
  • 4.3 insert 元素
  • 4.4 update元素和delete元素
  • 4.5参数
  • 4.6 sq1 元素
  • 4.7 resultMap 结果映射集
  • 4. 8缓存cache

第5章动态SQL

  • 5.1概述
  • 5.2 if元素
  • 5.3 choose、 when、 otherwise元素
  • 5.4 trim、where. set元素
  • 5.5 foreach 元素
  • 5.6 test 的属性
  • 5.7 bind元素

     

第6章MyBatis的解析和运行原理

  • 6.1涉及的技术难点简介
  • 6.2构建Sq1Sessi onFactory过程
  • 6.3 SqlSession运行过程

第7章插件.

  • 7.1插件接口
  • 7. 2插件的初始化
  • 7. 3插件的代理和反射设计
  • 7.4常用的工具类--Meta0bject
  • 7.5插件开发过程和实例
  • 7.6总结

第8章MyBati s-Spring

  • 8.1 Spring 的基础知识
  • 8.2 MyBatist -Spring应用
  • 8.3实例
  • 8.4总结

第9章实用的场景

  • 9.1数据库BLOB字段读写
  • 9.2批量更新
  • 9.3调用存储过程
  • 9.4分表
  • 9.5 分页
  • 9.6上传文件到服务器
  • 9.7在映射中使用枚举
  • 9. 8多对多级联
  • 9.9总结

本书不是一本味同嚼蜡的理论专著,而是一本MyBatis的实践指南,无论你是Java 程序员、MyBatis开发者,还是Java持久层框架的研究者,你都能从本书中收获知识

在实际操作中,MyBatis 往往是结合Spring 使用的,于是其中花费了一些篇 幅讲解MyBatis Spring技术,也会略略提到Spring项目的内容,以便更好地论述它们。最后还讲解了一些使用频率高、 参考价值大的场景, 使大家能熟练掌握MyBatis的开发。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/29043.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

跨平台应用开发进阶(四十五)uni-app集成企微客服实战

文章目录一、前言二、功能实现2.1 环境准备2.2 代码层面2.3 拓展工具三、拓展阅读一、前言 应用运营过程中,考虑接入企业微信客服功能,大致看了下官方接入文档,并不困难,引入代码量也不大。按照手册来操作即可。 二、功能实现 …

Go Module的基本使用

go module是类似于java中的maven,是包的管理工具,在没有这个go module之前,都是配置本地的GOPATH,创建的每个项目也都必须创建在这个GOPATH的src目录下,且项目的go文件不能重名 go module是在go1.1.1版本推出的 开启go module 在…

装配式施工在建筑装修中的应用研究

目 录 摘 要 I Abstract II 1引言 1 2装配式施工在建筑装修中的发展背景及现状 2 2.1装配式施工在建筑装修中的发展背景 2 2.2建筑装饰行业现状 2 3装配式施工在建筑装修中体系的主要特点 3 4装配式施工在建筑装修中体系的构成 4 4.1八大系统 4 4.1.1集成卫浴系统 4 4.1.2集成厨…

【App自动化测试】(二)Appium环境部署

目录1. Appium生态工具2. Appium环境安装部署2.1 Appium 环境依赖说明2.2 第一步:安装JDK2.3 第二步:安装SDK2.4 第三步:安装Appium2.5 第四步:安装appium python client2.6 第五步:安装appium-doctor检测appium的安装…

Metabase学习教程:视图-1

你应该用哪个图表? 您应该使用哪种类型的图表和图表来最好地传达来自数据的见解?这将有助于你选择正确的工作。 选择正确的图表可以归结为两个问题:数据是什么样子的,以及您试图传达什么? 让Metabase为您选择图表 …

Day01-网页结构分析

网页结构分析 一 前言 姓名:陈云 TEL:18571593511 企业用人的两个标准 1.能干活,见到需求能反应出粗线条实施计划,起手实施后能自主预判和解决坑点,直至完成. 2.对某些敏感点理解较准确,有一定潜质做个性化封装和技术选型工作,应对突发状况,避免生…

SpringBoot--通过JSON传递请求参数--方法/实例

原文网址:SpringBoot--通过JSON传递请求参数--方法/实例_IT利刃出鞘的博客-CSDN博客 简介 本文用示例介绍SpringMVC如何通过JSON格式传递入参。 JSON格式使用post方式来请求,即:对应的注解为:PostMapping。 PostMapping注解的方法…

Vue学习笔记

课程来源:https://www.bilibili.com/video/BV1Zy4y1K7SH?p4&vd_source6f37192b213c98639a87ec77b26d105d 学习计划:一天学10节,从第四节开始做笔记,预计16天完成(完成日期2022年12月7日) 目录&#…

【1】Anaconda基本命令以及相关工具:jupyter、numpy、Matplotilb

目录 一、Anaconda ◼ anaconda命令行操作 二、jupyter notebook 1 jupyter的基础使用 ◼ jupyter的启动 ◼ ipynb文件的新建、重命名、删除 ◼ 菜单说明 ◼ 运行cell单元块 ◼ 编写文档笔记 2 jupyter的高级使用:常用魔法命令 ◼ writefile pycat run …

【Golang】来用GoLand开发第一个Go程序

​ 📓推荐网站(不断完善中):个人博客 ​ 📌个人主页:个人主页 ​ 👉相关专栏:CSDN专栏、个人专栏 ​ 🏝立志赚钱,干活想躺,瞎分享的摸鱼工程师一枚 文章目录&#x1f34a…

【JAVA程序设计】基于JAVA的坦克大战小游戏--入门级小游戏

基于JAVA的坦克大战小游戏--入门级小游戏零、项目获取一、项目简介二、开发环境三、游戏玩法四、运行截图零、项目获取 获取方式(点击下载):是云猿实战 项目经过多人测试运行,可以确保100%成功运行。 一、项目简介 本项目是基于…

基于Java+Spring+Strusts2+Hibernate 社区智慧养老服务平台 系统设计与实现

一.项目介绍 本系统分为前端 和 后端 两块, 前端包括:首页、健康新闻、疾病预防、养生之道、动态通知、登录和注册 各模块的文章点击查看,支持评论以及回复功能, 登录成功之后点击欢迎您:后面的账号即可进入后台管理 后端包括&…

老杨说运维 | 非常重要,事关转型

《荀子》有云:“水能载舟,亦能覆舟。”在公司日常运营过程中,数据指标就像是水,孕育着生命,承载着万物。科学的数据指标能指引公司在正确的道路上不断前进,使平淡无常的业务焕发新生,而不合理的…

Qt QUndoStack、QUndoCommand(实现撤回和回撤)

用到的类: 1 QUndoStack: 一个存放 QUndoCommand 命令的栈. 2 QUndoCommand:The QUndoCommand class is the base class of all commands stored on a QUndoStack. 3 QUndoView:The QUndoView class displays the contents of a QUndoStack.&…

C#上位机系列(3)—定时器和串口的介绍

本文是讲解C#.net平台的Winform框架下的第三个内容,手把手介绍上位机项目的创建方式以及一些写软件时常用的功能,讲解从零开始的每一个步骤。 本次介绍上位机中定时器的使用和串口的配置 定时器:每过一段设定好的时间进入执行函数&#xff…

SIMULIA现实仿真解决方案 SIMULIA仿真模拟应用程序

由 3DEXPERIENCE 平台提供技术支持,SIMULIA 可提供仿真模拟应用程序,这些应用程序使用户能够探究现实生活中产品、自然和生命的行为 SIMULIA 通过虚拟测试实现性能要求促进协作。其产品组合提供强大的工具,能够对采用V6设计的零件、组件和产…

敏捷开发失败的五个原因以及解决方案

作者:David Bevans , Mendix公司高级内容营销经理 敏捷开发是一个可以改变软件交付方式的框架且效果十分惊人,但鉴于需要反复不断规划、测试、集成以及其他进行中的开发方式,敏捷开发在某些情况下行不通。下文将对常见的敏捷开发失灵以及相应…

菁染料CY3/CY5/CY7标记链霉亲和素/胰岛素,CY3/CY5/CY7-Streptavidin/Insulin

产品名称:菁染料CY3/CY5/CY7标记链霉亲和素/胰岛素 英文名称:CY3/CY5/CY7-Streptavidin/Insulin 链霉亲和素(streptavidin下称SA)是与亲和素(avidin下称AV)有相似生物学特性的一种蛋白质,是streptomyces avidinii菌的分泌物,其分…

AotuDL中Linux环境下运行pix2pix-tensorflow的环境配置(tensorflow==1.8.0 python==3.6)

目录写在前面1. 租用实例时基础镜像的选择2. 配置环境3. 实验记录写在前面 🍀windows环境下运行:【用于图像修复、数据增强等】结合官方代码教程,在Windows 10下运行pix2pix-tensorflow(tensorflow1.4.0 python3.6) A…

【网站架构】服务器弹性伸缩不能全自动,实际如何追加服务器

大家好,欢迎来到停止重构的频道。 本期,我们讨论大型网站的伸缩性。 伸缩性指的是通过自动增减服务器数量以适应用户量或压力。 这些年,微服务、ServerLess、K8S等技术,都让人有一种服务器自动伸缩很容易实现的错觉。 其实&…