第十四章 MyBatis

第十四章 MyBatis

  • 1.入门-课程介绍
  • 2.入门-快速入门程序
  • 3.配置SQL提示
  • 4.入门-JDBC
  • 5.入门-数据库连接池
  • 6.入门-lombok工具包介绍
  • 7.基础操作-环境准备
  • 8.基础操作-删除
  • 9.基础操作-删除(预编译SQL)
  • 10.基础操作-新增
  • 11.基础操作-新增(主键返回)
  • 12.基础操作-更新
  • 13.基础操作-查询(根据ID查询)
  • 14.基础操作-查询(条件查询)
  • 15.XML映射文件
  • 16.动态SQL-if
  • 17.if-案例
  • 18.动态sql-forEach
  • 19.sql&include

1.入门-课程介绍

在这里插入图片描述
在这里插入图片描述

2.入门-快速入门程序

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

不需要的删除
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Springboot自带配置文件
在这里插入图片描述

这里的mapper包就相当于三层架构里面的Dao这个包
在这里插入图片描述

下面我们测试一下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.配置SQL提示

现在这里我的SQL语句写错了也不会报错
在这里插入图片描述
在这里插入图片描述

如果没有提示表名或者表爆红了,我们需要进行配置
在这里插入图片描述

4.入门-JDBC

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.入门-数据库连接池

在这里插入图片描述
在这里插入图片描述
Hikari是springboot自带的连接池
在这里插入图片描述

如果在springboot项目中,我想使用druid连接池
第一步:引入依赖 第二步:配置连接信息
在这里插入图片描述
在这里插入图片描述
切换成功
在这里插入图片描述
下面改不改都可以
在这里插入图片描述
在这里插入图片描述

6.入门-lombok工具包介绍

在这里插入图片描述
在这里插入图片描述

引入依赖
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

老idea版本要自己装
在这里插入图片描述

7.基础操作-环境准备

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
准备数据库表
在这里插入图片描述
在这里插入图片描述
emp表中的数据
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

下面是需要的依赖
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.基础操作-删除

在这里插入图片描述
id为17的删除成功
在这里插入图片描述
在这里插入图片描述

其实delete操作是有返回值,返回的是此次操作影响几条记录数
只是这里我们不需要
在这里插入图片描述
17之前已经删除
所以返回的是0
0表示没有影响任何记录
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

9.基础操作-删除(预编译SQL)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下面这种就是SQL注入
即使我们没有正确的用户名密码,我们也登入成功了
在这里插入图片描述

下面是预编译SQL的情况
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

$(…)一般是对表名或者字段名进行动态设置的时候使用
在这里插入图片描述

在这里插入图片描述

10.基础操作-新增

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

11.基础操作-新增(主键返回)

在这里插入图片描述

我这里在插入一条记录后
然后返回这条记录的主键id
返回失败了
在这里插入图片描述

默认情况下,这条主键值是不会返回的
在这里插入图片描述

如果我们要返回这个主键值
在这里插入图片描述
在这里插入图片描述

主键值返回成功
在这里插入图片描述

12.基础操作-更新

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

13.基础操作-查询(根据ID查询)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

有个问题
后面三个全为空
在这里插入图片描述
在这里插入图片描述

方法一:
给字段起一个别名
在这里插入图片描述

方法二:
在这里插入图片描述

方法三:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

14.基础操作-查询(条件查询)

在这里插入图片描述

这里的#{name}是在‘’内,不可以
在这里插入图片描述
我们这样可以使用 $ {name},$ 表示拼接
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

15.XML映射文件

在这里插入图片描述

这里我们用 . 分割会出现问题
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

去MyBatis中文网复制约束
在这里插入图片描述
在这里插入图片描述

获取EmpMapper的全类名
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

16.动态SQL-if

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

如果只传gender项,会报错,因为多了一个and
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

17.if-案例

我们这里只要更新三个字段
在这里插入图片描述
将其他不需要更新的字段删除
在这里插入图片描述
下面是没有更新前id为18的用户信息
在这里插入图片描述

我们在更新后发现,我们不需要更新的部分变为null了
在这里插入图片描述

原因是sql语句中更新的字段都是固定死的
意味着每一次我们都要更新这些字段
在这里插入图片描述
在这里插入图片描述

要使用动态sql,注解十分不方便
我们要到xml映射文件中进行操作
在这里插入图片描述

现在我们再进行存储
在这里插入图片描述

Id为19的更新成功
在这里插入图片描述

下面我们只更新id为19的username
在这里插入图片描述

原因是多了一个 ,
在这里插入图片描述

这里mybatis中提供了< set>< /set>标签来解决这种问题
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

18.动态sql-forEach

在这里插入图片描述
如果我们要执行批量删除
比如删除18,19,20三条记录
在这里插入图片描述
在这里插入图片描述
删除成功
在这里插入图片描述

我们将id值封装在ids集合中传递进来
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
删除成功
在这里插入图片描述
在这里插入图片描述

19.sql&include

这里我们不用select*进行查询,下面这样列举出来比较快
在这里插入图片描述
上述的操作中有部分sql语句是一样的,如果我们改了某个字段名,所有的sql语句都要进行修改,十分麻烦,在java中我们一般会将其封装到一个方法中,直接改这个方法就行
这里我们同样这样做
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

006.Oracle事务处理

我 的 个 人 主 页&#xff1a;&#x1f449;&#x1f449; 失心疯的个人主页 &#x1f448;&#x1f448; 入 门 教 程 推 荐 &#xff1a;&#x1f449;&#x1f449; Python零基础入门教程合集 &#x1f448;&#x1f448; 虚 拟 环 境 搭 建 &#xff1a;&#x1f449;&…

若依cloud框架使用定时任务实践

参考博客 https://blog.csdn.net/m0_60563637/article/details/126429284 具体操作 1.在job服务的task包下新建一个你需要的Task类 代码&#xff1a; Slf4j Component("propertyTask") public class PropertyTask {public void testDemo(){System.out.println(&q…

XHCMS靶场小记(熊海)

文件包含漏洞 template下的header.php中存在文件包含漏洞&#xff08;该文件被file文件夹下的多数文件进行包含&#xff09; f参数可以包含任意文件通过php格式解析&#xff08;这是文件包含点&#xff09; 代码分析 根目录下的index.php文件&#xff1b;r参数用于获取包含文…

[足式机器人]Part2 Dr. CAN学习笔记- Kalman Filter卡尔曼滤波器Ch05-3+4

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记 - Kalman Filter卡尔曼滤波器 Ch05-34 3. Step by step : Deriation of Kalmen Gain 卡尔曼增益/因数 详细推导4. Priori/Posterrori error Covariance Martix 误差协方差矩阵 3. Step by step :…

组件(Component):可重用的元素

目标效果&#xff1a;点击粉色按钮后&#xff0c;出现一行“为什么非要点我&#xff1f;”的文字。 用组件的方式实现&#xff1a;首先单击项目文件夹01&#xff0c;然后右键弹窗中点击“添加新文件” 。 选择 QML File 文件&#xff1a; 文件名就叫Button&#xff0c;然后把代…

java数据结构与算法刷题-----LeetCode283. 移动零

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 解题思路 双指针&#xff0c;用right和left两个指针&#xff0c;将非0元素…

vue中引入sass、scss

常规步骤 1. 创建项目 使用vue cli 脚手架工具创建项目 vue create xxxx2. 创建全局样式文件 全局样式变量 路径&#xff1a;/assets/styles/variables.scss //flex 布局变量 $--flex-direction: ("row", "column"); $--flex-position: ("start"…

主动轮廓——计算机视觉中的图像分割方法

​ 一、说明 简单来说&#xff0c;计算机视觉就是为计算机提供类似人类的视觉。作为人类&#xff0c;我们很容易识别任何物体。我们可以很容易地识别山丘、树木、土地、动物等&#xff0c;但计算机没有眼睛&#xff0c;也没有大脑&#xff0c;因此它很难识别任何图像。计算机只…

tomcat与servlet

目录 一、Http服务器 二、tomcat 1、概念 2、tomcat解压缩文件 &#xff08;1&#xff09;bin文件夹 &#xff08;2&#xff09;conf文件夹 &#xff08;3&#xff09;logs &#xff08;4&#xff09;webapps 3、借助tomcat服务器访问网页 三、servlet 1、概念 2、s…

java SSM园林绿化管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM园林绿化管理系统是一套完善的web设计系统&#xff08;系统采用SSM框架进行设计开发&#xff0c;springspringMVCmybatis&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代 码和数据库&#xff0c;系统主要采…

安全基础~web攻防特性2

文章目录 知识补充Javaweb安全之webGoatwebgoat靶场搭建闯关GeneralInjectionldentity & Auth Failurelog4j2漏洞利用 JS项目&Node.JS框架安全 知识补充 Burpsuite Render在无法预览显示时&#xff0c;可以适当的清理缓存 win10下输入文字变成繁体解决 Javaweb安全之…

一键转换,让JPG轻松变身BMP - 提升办公效率,从这里开始!

在繁忙的办公环境中&#xff0c;我们总是在追求更高的效率&#xff0c;希望以更短的时间完成更多的任务。今天&#xff0c;我们将为您带来一款强大且实用的工具&#xff0c;它能帮助您快速将JPG格式的图片转换为BMP格式&#xff0c;让您在处理图片时更加得心应手。 首先&#x…

5分钟教会你如何在生产环境debug代码

前言 有时出现的线上bug在测试环境死活都不能复现&#xff0c;靠review代码猜测bug出现的原因&#xff0c;然后盲改代码直接在线上测试明显不靠谱。这时我们就需要在生产环境中debug代码&#xff0c;快速找到bug的原因&#xff0c;然后将锅丢出去。 生产环境的代码一般都是关闭…

怎么解决离散型制造业中的7大浪费

企业在生产管理中会产生各种浪费&#xff0c;MES可以巧妙结合精益化生产管理思想消除这些浪费。离散制造中的7大浪费&#xff1a; 1、生产不良 生产过程中出现废品、次品这类质量问题&#xff0c;一方面会消耗原材料、零部件等&#xff0c;另一方面生产、返修过程也会消耗人工…

Dicom标准里的 RescaleType

DCM_RescaleType 0x0028, 0x1054 这个 HU 和 us 是代表什么含义 之前去一个公司面试&#xff0c;问我&#xff0c; MR里灰阶是什么 CT里才叫CT值&#xff0c; MR里叫什么呢&#xff1f; DICOMLookup

selenium处理下拉框

当想要爬取的数据由下拉框来选择时&#xff0c;应该如何处理&#xff1f; 页面如下&#xff1a; 目的获得电影的详细信息&#xff0c;包括票房&#xff0c;上映日期等。 代码如下&#xff1a; from selenium import webdriver from selenium.webdriver.support.select impor…

LLM:Training Compute-Optimal Large Language Models

论文&#xff1a;https://arxiv.org/pdf/2203.15556.pdf 发表&#xff1a;2022 前文回顾&#xff1a; OpenAI在2020年提出《Scaling Laws for Neural Language Models》&#xff1a;Scaling Laws(缩放法则&#xff09;也一直影响了后续大模型的训练。其给出的结论是最佳计算效…

2024PMP考试新考纲-【过程领域】近期典型真题和很详细解析(7)

华研荟继续为您分享【过程Process领域】的新考纲下的真题&#xff0c;进一步帮助大家体会和理解新考纲下PMP的考试特点和如何应用知识来解题&#xff0c;并且举一反三&#xff0c;一次性、高等级通过2024年PMP考试。 2024年PMP考试新考纲-【过程领域】真题解析31 题&#xff1…

【4k】4k的webrtc播放示例

目录 使用带研发角色的账号&#xff0c;在app端设置下分辨率 &#xff1a; 4k 点播 ffplay播放看下详细的参数 使用带研发角色的账号&#xff0c;在app端设置下分辨率 &#xff1a; 4k 点播 ffplay播放看下详细的参数

Pytest插件“pytest-selenium” - 让自动化测试更简洁

在现代Web应用的开发中,自动化测试成为确保网站质量的重要手段之一。而Pytest插件 pytest-selenium 则为开发者提供了简单而强大的工具,以便于使用Python进行Web应用的自动化测试。本文将深入介绍 pytest-selenium 插件的基本用法和实际案例,助你轻松进入无忧的Web应用测试之…