跟老杜从零入门MyBatis到架构思维(一)MyBatis概述

跟老杜从零入门MyBatis到架构思维(六)MyBatis核心配置文件-transactionManager JNDI的方式:表示对接JNDI服务器中的连接池。充分发挥数据库连接池的性能。最大的空闲连接数量。默认值5,如何已经有了5个空闲连接,当第6个连接要空闲下来的时候,连接池会选择关闭该连接对象。poolTimeToWait:当无法获取到空闲连接时,每隔20秒打印一次日志,避免因代码配置有误,导致傻等。最大的活动的连接数量就是连接池连接数量的上限。默认值10,如果有10个请求正在使用这10个连接,第11个请求只能等待空闲连接。poolMaximumActiveConnections:最大的活动的连接数量。 阅读详情

今天这篇文章带大家详细了解MyBatis框架

配合视频教程观看,更易学习理解,课程讲解从Mybatis的一些核心要点与实战中的运用,一直过渡到MyBaits源码,由表及里的代入架构思维。一步一案例,一码一实操。从简单到深入,从实战到源码,MyBatis重点、难点、考点一网打尽。

相关的学习资料给大家备好了

https://www.bilibili.com/video/BV1JP4y1Z73S/

MyBatis概述

1.1 框架

  • 在文献中看到的framework被翻译为框架
  • Java常用框架:
  1. SSM三大框架:Spring + SpringMVC + MyBatis
  2. SpringBoot
  3. SpringCloud
  4. 等。。
  • 框架其实就是对通用代码的封装,提前写好了一堆接口和类,我们可以在做项目的时候直接引入这些接口和类(引入框架),基于这些现有的接口和类进行开发,可以大大提高开发效率。
  • 框架一般都以jar包的形式存在。(jar包中有class文件以及各种配置文件等。)
  • SSM三大框架的学习顺序:MyBatis、Spring、SpringMVC(仅仅是建议)

1.2 三层架构

  1. 表现层(UI):直接跟前端打交互(一是接收前端ajax请求,二是返回json数据给前端)
  2. 业务逻辑层(BLL):一是处理表现层转发过来的前端请求(也就是具体业务),二是将从持久层获取的数据返回到表现层。
  3. 数据访问层(DAL):直接操作数据库完成CRUD,并将获得的数据返回到上一层(也就是业务逻辑层)。
  4. Java持久层框架:
  • MyBatis
  • Hibernate(实现了JPA规范)
  • jOOQ
  • Guzz
  • Spring Data(实现了JPA规范)
  • ActiveJDBC
  • ......

1.3 JDBC不足

  1. 示例代码1:
// ......

// sql语句写死在java程序中

String sql = "insert into t_user(id,idCard,username,password,birth,gender,email,city,street,zipcode,phone,grade) values(?,?,?,?,?,?,?,?,?,?,?,?)";

PreparedStatement ps = conn.prepareStatement(sql);

// 繁琐的赋值:思考一下,这种有规律的代码能不能通过反射机制来做自动化。

ps.setString(1, "1");

ps.setString(2, "123456789");

ps.setString(3, "zhangsan");

ps.setString(4, "123456");

ps.setString(5, "1980-10-11");

ps.setString(6, "男");

ps.setString(7, "zhangsan@126.com");

ps.setString(8, "北京");

ps.setString(9, "大兴区凉水河二街");

ps.setString(10, "1000000");

ps.setString(11, "16398574152");

ps.setString(12, "A");

// 执行SQL

int count = ps.executeUpdate();

// ......
  1. 示例代码2:
// ......

// sql语句写死在java程序中

String sql = "select id,idCard,username,password,birth,gender,email,city,street,zipcode,phone,grade from t_user";

PreparedStatement ps = conn.prepareStatement(sql);

ResultSet rs = ps.executeQuery();

List<User> userList = new ArrayList<>();

// 思考以下循环中的所有代码是否可以使用反射进行自动化封装。

while(rs.next()){

    // 获取数据

    String id = rs.getString("id");

    String idCard = rs.getString("idCard");

    String username = rs.getString("username");

    String password = rs.getString("password");

    String birth = rs.getString("birth");

    String gender = rs.getString("gender");

    String email = rs.getString("email");

    String city = rs.getString("city");

    String street = rs.getString("street");

    String zipcode = rs.getString("zipcode");

    String phone = rs.getString("phone");

    String grade = rs.getString("grade");

    // 创建对象

    User user = new User();

    // 给对象属性赋值

    user.setId(id);

    user.setIdCard(idCard);

    user.setUsername(username);

    user.setPassword(password);

    user.setBirth(birth);

    user.setGender(gender);

    user.setEmail(email);

    user.setCity(city);

    user.setStreet(street);

    user.setZipcode(zipcode);

    user.setPhone(phone);

    user.setGrade(grade);

    // 添加到集合

    userList.add(user);

}

// ......
  1. JDBC不足:
  • SQL语句写死在Java程序中,不灵活。改SQL的话就要改Java代码。违背开闭原则OCP。
  • 给?传值是繁琐的。能不能自动化???
  • 将结果集封装成Java对象是繁琐的。能不能自动化???

1.4 了解MyBatis

  1. MyBatis本质上就是对JDBC的封装,通过MyBatis完成CRUD。
  2. MyBatis在三层架构中负责持久层的,属于持久层框架。
  3. MyBatis的发展历程:【引用百度百科】
  • MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation迁移到了google code,并且改名为MyBatis。2013年11月迁移到Github。
  • iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs)。
  1. 打开mybatis代码可以看到它的包结构中包含:ibatis

2. ORM:对象关系映射

  • O(Object):Java虚拟机中的Java对象
  • R(Relational):关系型数据库
  • M(Mapping):将Java虚拟机中的Java对象映射到数据库表中一行记录,或是将数据库表中一行记录映射成Java虚拟机中的一个Java对象。
  • ORM图示
  • MyBatis属于半自动化ORM框架。
  • Hibernate属于全自动化的ORM框架。

3. MyBatis框架特点:

  • 支持定制化 SQL、存储过程、基本映射以及高级映射
  • 避免了几乎所有的 JDBC 代码中手动设置参数以及获取结果集
  • 支持XML开发,也支持注解式开发。【为了保证sql语句的灵活,所以mybatis大部分是采用XML方式开发。】
  • 将接口和 Java 的 POJOs(Plain Ordinary Java Object,简单普通的Java对象)映射成数据库中的记录
  • 体积小好学:两个jar包,两个XML配置文件。
  • 完全做到sql解耦合。
  • 提供了基本映射标签。
  • 提供了高级映射标签。
  • 提供了XML标签,支持动态SQL的编写。
  • ......

Mybatis从入门到精通 | 动力节点老杜 深入理解mybatis,这一篇就够了。 看动力节点mybatis课程的学习笔记。 阅读详情

相关推荐

COD论文笔记VSCode: General Visual Salient and Camouflaged Object Detection with 2D Prompt Learning

VSCode模型通过引入领域特定提示和任务特定提示,结合提示区分损失,成功地在单一模型中处理多个显著目标检测和伪装目标检测任务。这种方法不仅提高了模型的性能,还展示了其对未见任务的泛化能力。作者使用 Visual saliency transformer ICCV 2021 作为baseline model这张图展示了VSCode模型的整体框架,特别强调了2D提示学习方法。

985小菜鸡 1625

老杜MyBatis笔记

Mybatis是持久层框架是对JDBC功能进行一些封装。同时JDBC写java里面不符合开闭原则,JDBC操作繁琐O(object):jvm中的java对象R(Relational):关系型数据库M(Mapper):映射上面是ROM?:pojo与数据表记录的互相映射。

m0_74321406的博客 1269

雷达气象学(8)——反射率因子图实战(强对流预警篇)

本文聚焦雷达反射率因子图在强对流预警中的实战应用,深入解析了柱状回波、有界弱回波区(BWER)、三体散射(TBSS)等关键回波结构特征,这些是识别超级单体风暴和大冰雹的核心“身份证”。文章强调从静态识别转向动态追踪与多源数据综合研判的思维转变,并提供了系统的实战分析流程与常见误区避坑指南,旨在提升对强对流天气的短临预警能力。

weixin_29213827的博客 485

mybatis笔记(老杜版本)

mybatis笔记

OriginalSword的博客 3415

基于RTL8367S与XS2184的工业级POE交换机硬件设计全解析

本文深入解析基于RTL8367S与XS2184芯片的工业级POE交换机硬件设计,涵盖核心价值、芯片选型、原理图设计、PCB布局及可靠性验证等关键环节。重点探讨双芯片协同工作优势,如RTL8367S的自适应调度算法和XS2184的智能功率分配功能,为工业环境下的稳定供电与数据传输提供专业解决方案。

weixin_42614269的博客 458

Docker 与容器技术的未来:从 OCI 标准到 eBPF 的演进

OCI 的核心目标是创建一个开放的、厂商中立的容器技术标准。这意味着,只要一个容器镜像符合 OCI 镜像格式规范,它就可以在任何符合 OCI 运行时规范的容器运行时上运行。eBPF 是一种革命性的技术,它允许在 Linux 内核中安全地运行沙盒程序,而无需修改内核源代码或加载内核模块。这些程序可以注册到内核中的各种事件点(如网络包到达、系统调用、函数调用/返回),并在事件发生时执行自定义逻辑。核心思想是:在不将数据复制到用户空间的情况下,程序可以直接在内核中处理数据,极大地提高了效率和性能。

专栏 1381

老杜带你从零入门MyBatis,学MyBatis看这篇就够了!

从零基础小白学习的角度出发,以层层递进的方式,一直深入到框架底层源代码的实现原理。不管你是小白还是正在实战开发的软件工程师,渗透全面一套拿捏~ 课程秉承动力节点一贯的教学风格,列文虎克式讲解,全程高能式教学,每个知识点的递进都伴随着N个案例予以解释,“杜”式教学风格,保证你学得会听得懂。iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。课程讲解从Mybatis的一些核心要点与实战中的运用,一直过渡到MyBaits源码,由表及里的代入架构思维。

hujidedf的博客 430

Springboot计算机毕业设计校园树洞微信小程序【附源码】开题+论文+mysql+程序+部署

因此,开发一款专门针对校园用户的树洞微信小程序,为学生提供一个安全、私密、便捷的倾诉和交流平台,具有重要的现实意义和应用价值。通过本研究的实施,我们预期能够开发出一款功能全面、操作便捷的校园树洞微信小程序,为校园师生提供一个安全、私密、便捷的倾诉和交流平台。此外,通过不断优化和改进小程序的功能和服务,我们预期能够提升用户体验和满意度,推动校园树洞小程序的持续发展,并为校园生活的和谐与健康发展做出积极贡献。同时,通过不断优化小程序的功能和服务,提升用户体验和满意度,推动校园树洞小程序的广泛应用和持续发展。

光冯毕设程序 1666

跟老杜从零学MyBatis框架【三】使用MyBatis完成CRUD

课程讲解从Mybatis的一些核心要点与实战中的运用,一直过渡到MyBaits源码,由表及里的代入架构思维。一步一案例,一码一实操,学,嘴对嘴指导。从简单到深入,从实战到源码,MyBatis重点、难点、考点一网打尽。学习地址:https://www.bilibili.com/video/BV1JP4y1Z73S/

2301_76637874的博客 195

【第1章>第5节】SOM自组织映射网络的理论学习与MATLAB仿真

自组织映射网络(Self-Organizing Map,SOM)是一种无监督学习的人工神经网络,由芬兰学者Teuvo Kohonen于1981年提出,也被称为Kohonen网络。它的主要功能是将高维输入数据映射到低维(通常是二维)的离散网格上,同时保持输入数据的拓扑结构,即相邻的输入数据在映射后的网格上也相邻。

FPGA/MATLAB学习教程/源码/项目合作开发 401

YOLOv13涨点改进| CVPR 2026 |独家创新首发、主干改进篇 |利用RIS-PiDiNet主干让YOLOv13更加强大!适合遥感目标检测、小目标检测、旋转目标检测,变化检测,图像分割涨点

🔥本文提出了一种改进的RIS-PiDiNet主干网络,通过引入几何先验构建几何一致性检测器,显著提升了模型在任意方向、结构规则目标场景下的检测性能。包含两个核心模块:S-PDC利用极谐变换的谐波核建模目标结构对称性,RIS-PDC通过SO(2)群平均实现旋转不变性。网络采用基于RIS-block的主干结构并融合轻量级LBP特征,增强了细粒度结构表达能力。实验表明,该方法特别适用于遥感和复杂几何分布场景,能有效提升目标检测的鲁棒性和精度。文章还详细介绍了如何将RIS-PiDiNet集成到YOLOv13框架

Ai缝合怪、助力小伙伴高效发论文 90

SSM框架专题-MyBatis框架老杜版从零入门笔记(下)

MyBatis的高级进阶部分

u011005040的博客 2453

vue支付项目-APP支付宝支付功能

如果用户已安装支付宝客户端,商家 App 唤起支付宝完成支付,支付完后跳回到商家 App 内,最后展示支付结果。如果用户没有安装支付宝客户端,商家 App 内会调起支付宝网页支付收银台,用户登录支付宝账号,支付完后展示支付结果。1.点击按钮开通或者续费,会验证是否选择会员商品以及对协议是否查看选中(这里根据项目需要自行验证,可忽略),验证通过打开选择支付方式弹窗页面,选择微信支付或者支付宝支付;4.可取消支付,放弃支付会返回会员页面,页面提示支付取消;1.判断支付方式,如果是2,则是支付宝支付方式。

总结前端开发中遇到的问题,分享前端知识 1万+

跟老杜从零入门MyBatis到架构思维(二)MyBatis入门程序

只要你会JDBC,MyBatis就可以学。2.1 版本配合视频教程观看,更易学习理解,课程讲解从Mybatis的一些核心要点与实战中的运用,一直过渡到MyBaits源码,由表及里的代入架构思维。一步一案例,一码一实操。从简单到深入,从实战到源码,MyBatis重点、难点、考点一网打尽。相关的学习资料给大家备好了​​。

java_yydsyyds的博客 228

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

跟老杜从零入门MyBatis到架构思维(四)使用MyBatis完成CRUD- 下

配合视频教程观看,更易学习理解,课程讲解从Mybatis的一些核心要点与实战中的运用,一直过渡到MyBaits源码,由表及里的代入架构思维。一步一案例,一码一实操。从简单到深入,从实战到源码,MyBatis重点、难点、考点一网打尽。相关的学习资料给大家备好了​。

java_yydsyyds的博客 179

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

跟老杜从零入门MyBatis到架构思维(五)MyBatis核心配置文件-environment

配合视频教程观看,更易学习理解,课程讲解从Mybatis的一些核心要点与实战中的运用,一直过渡到MyBaits源码,由表及里的代入架构思维。一步一案例,一码一实操。从简单到深入,从实战到源码,MyBatis重点、难点、考点一网打尽。​。

java_yydsyyds的博客 169

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

跟老杜从零入门MyBatis到架构思维(七)MyBatis核心配置文件-properties

源码,由表及里的代入架构思维。一步一案例,一码一实操。从简单到深入,从实战到源码,MyBatis重点、难点、考点一网打尽。配合视频教程观看,更易学习理解,课程讲解从Mybatis的一些核心要点与实战中的运用,一直过渡到。--${key}使用-->--引入外部属性资源文件-->

java_yydsyyds的博客 133

跟老杜从零入门MyBatis到架构思维(三)使用MyBatis完成CRUD- insert(Create)

配合视频教程观看,更易学习理解,课程讲解从Mybatis的一些核心要点与实战中的运用,一直过渡到MyBaits源码,由表及里的代入架构思维。一步一案例,一码一实操。从简单到深入,从实战到源码,MyBatis重点、难点、考点一网打尽。相关的学习资料给大家备好了​。

java_yydsyyds的博客 196

跟老杜从零入门MyBatis到架构思维(八)MyBatis核心配置文件-Mapper

源码,由表及里的代入架构思维。一步一案例,一码一实操。从简单到深入,从实战到源码,MyBatis重点、难点、考点一网打尽。配合视频教程观看,更易学习理解,课程讲解从Mybatis的一些核心要点与实战中的运用,一直过渡到。如果是这样写的话,必须保证类的根下有CarMapper.xml文件。第一种:resource,从类的根路径下开始加载【比url常用】mapper还有其他的指定方式,后面再看!第二种:url,从指定的url位置加载。

java_yydsyyds的博客 117

SSM框架专题-MyBatis框架从零入门老杜版笔记(上)

MyBatis自用笔记,记录学习全过程

u011005040的博客 1万+

跟老杜从零学MyBatis框架【一】MyBatis概述

在文献中看到的framework被翻译为框架Java常用框架:SSM三大框架:Spring + SpringMVC + MyBatisSpringBoot等。。框架其实就是对通用代码的封装,提前写好了一堆接口和类,我们可以在做项目的时候直接引入这些接口和类(引入框架),基于这些现有的接口和类进行开发,可以大大提高开发效率。框架一般都以jar包的形式存在。(jar包中有class文件以及各种配置文件等。

2301_76637874的博客 139

动力节点老杜MyBatis教程:从入门到精通的技术之旅

动力节点老杜MyBatis教程:从入门到精通的技术之旅 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 《动力节点老杜MyBatis教程学习资料分享》是一套专为MyBatis学习者量身打造的精品教程。无论你是编程初学者,还是已有一定经验的软件工程师,这套教程都能帮助你全面掌握MyBatis的核心技术。课程从基础概念入手,逐步深入到框架的核心乃至源码剖析,确保每一位学员都...

gitblog_09773的博客 633

跟老杜从零学MyBatis框架【二】MyBatis入门程序

注意2:CarMapper.xml文件的名字不是固定的。可以使用其它名字。注意3:CarMapper.xml文件的位置也是随意的。这里选择放在resources根下,相当于放到了类的根路径下。注意4:将CarMapper.xml文件路径配置到mybatis-config.xml:

2301_76637874的博客 189

跟着老杜学MyBatis+第2天+MyBatis入门程序

注意2:CarMapper.xml文件的名字不是固定的。可以使用其它名字。注意3:CarMapper.xml文件的位置也是随意的。这里选择放在resources根下,相当于放到了类的根路径下。注意4:将CarMapper.xml文件路径配置到mybatis-config.xml:

少年一贯快马扬帆,道阻且长不转弯; 要盛大,要绚烂,要哗然; 要用理想的泰坦尼克,去撞现实的冰川; 要当烧赤壁的风,而非借鉴草船; 要为了一片海,就肯翻万山。 1561

跟着老杜学MyBatis+第1天+MyBatis概述

1.1 框架1.2 三层架构1.3 JDBC不足1.4 了解MyBatis。

少年一贯快马扬帆,道阻且长不转弯; 要盛大,要绚烂,要哗然; 要用理想的泰坦尼克,去撞现实的冰川; 要当烧赤壁的风,而非借鉴草船; 要为了一片海,就肯翻万山。 896
上一篇: Docker入门到精通超详细教程,Docker全家桶实战攻略
下一篇: 跟老杜从零入门MyBatis到架构思维(二)MyBatis入门程序
Java摸鱼学习者
博客等级 码龄4年 2粉丝 22原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值