第十四章 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中我们一般会将其封装到一个方法中,直接改这个方法就行
这里我们同样这样做
在这里插入图片描述

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

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

相关文章

Python初识——小小爬虫

一、找到网页端url 打开浏览器&#xff0c;打开百度官方网页点击图片&#xff0c;打开百度图片 鼠标齿轮向下滑&#xff0c;点击宠物图片 进入宠物图片网页&#xff0c;在网页空白处点击鼠标右键&#xff0c;弹出的框中最下方显示“检查”选项&#xff0c;点击&#xff08;我是…

安全帽识别-赋能深圳自贸中心智慧工地

在当今的建筑行业中&#xff0c;安全管理一直是一个至关重要的议题。深圳自贸中心项目在这方面进行了一次有益的尝试——实施智慧工地安全帽识别系统。本文将对这一创新举措进行简要介绍。 项目背景 深圳自贸中心&#xff0c;作为一项标志性建设项目&#xff0c;承载着城市发展…

怎么用小程序将身份证转为结构化Excel?

随着科技的不断发展&#xff0c;我们的生活变得越来越智能化。现在&#xff0c;我们可以使用金鸣表格文字识别小程序来识别身份证并转为结构化的excel&#xff0c;并且可自动核对真伪&#xff0c;保留头像。金鸣表格文字识别小程序是一种基于人工智能技术的应用程序&#xff0c…

将字符串中的制表符替换为指定数量的空格expandtabs()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 将字符串中的制表符 替换为指定数量的空格 expandtabs() [太阳]选择题 请问以下代码text3的空白处是&#xff1f; text1 "这里有一个\t制表符" text2 "这里有一个12345制表符…

第二次作业+第三次作业

第二次作业第三次作业 第二次作业 题目&#xff1a; 网站需求&#xff1a; ​ 1.基于域名[www.openlab.com](http://www.openlab.com)可以访问网站内容为 welcome to openlab!!! 2.给该公司创建三个子界面分别显示学生信息&#xff0c;教学资料和缴费网站&#xff0c;基于[ww…

利用HTML+CSS+JS打造炫酷时钟网页的完整指南

引言 在现代Web开发中&#xff0c;制作一个引人注目的时钟网页是一种常见而令人愉悦的体验。本文将介绍如何使用HTML、CSS和JavaScript来创建一个炫酷的时钟网页&#xff0c;通过这个项目&#xff0c;你将学到如何结合这三种前端技术&#xff0c;制作一个动态且美观的时钟效果…

深入探索 Android 中的 Runtime

深入探索 Android 中的 Runtime 一、什么是 Runtime二、Android 中的 Runtime 类型2.1. Dalvik Runtime2.2. ART&#xff08;Android Runtime&#xff09; 三、Runtime 的作用和特点3.1. 应用程序执行环境3.2. 跨平台支持3.3. 性能优化3.4. 应用程序优化 四、与应用开发相关的重…

Unity3D Pico VR 手势识别物体交互 适配 MRTK3

当前Pico已经支持手势识别了&#xff0c;但是提供的PICO Unity Integration SDK 中是没有手势和物体交互的功能&#xff0c;Unity XR Interaction Toolkit提供的手势识别物体交互对 Quest适配的挺好的&#xff0c;Pico 当前只能用指尖点触还不能对物体进行抓握以及手势控制射线…

JS-WebAPIs-其他事件(三)

• 页面加载事件 页面加载事件主要有二种事件&#xff0c;分别是load和DOMContentLoaded 加载外部资源&#xff08;如图片、外联CSS和JavaScript等&#xff09;加载完毕时触发的事件为什么要学&#xff1f; 有些时候需要等页面资源全部处理完了做一些事情老代码喜欢把 scrip…

Hadoop详解

Hadoop 概念 就是一个大数据解决方案。它提供了一套分布式系统基础架构。 核心内容包含 hdfs 和mapreduce。hadoop2.0 以后引入 yarn. hdfs 是提供数据存储的&#xff0c;mapreduce 是方便数据计算的。 hdfs 又对应 namenode 和 datanode. namenode 负责保存元数据的基本信息…

YZ系列工具之YZ04:文本批量替换使用说明文档

我给VBA下的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。我的教程一共九套一部VBA手册&#xff0c;教程分为初级、中级、高级三大部分。是对VBA的系统讲解&#xff0c;从简单的…

解锁新身份:无忧秘书智脑-AI智能直播的10宫格姓氏头像制作秘籍

在这个信息爆炸的时代&#xff0c;一个独特的标识是个人或品牌在众多竞争者中脱颖而出的关键。而头像作为我们日常在线身份的一部分&#xff0c;更是我们展示个性和风格的重要窗口。无忧秘书智脑-AI智能直播最新推出的专属姓氏10宫格头像功能&#xff08;ai6ai69)&#xff0c;为…

【Python学习】Python学习21- 正则表达式(2)

目录 【Python学习】Python学习21- 正则表达式&#xff08;2&#xff09; 前言字符串检索和替换repl 参数是一个函数参考 文章所属专区 Python学习 前言 本章节主要说明Python的正则表达式。 正则表达式是一个特殊的字符序列&#xff0c;它能帮助你方便的检查一个字符串是否与…

MySQL缓冲池(Buffer Pool)深入解析:原理、组成及其在数据操作中的核心作用

在关系型数据库管理系统&#xff08;RDBMS&#xff09;中&#xff0c;性能优化一直是数据库管理员和开发者关注的焦点。作为最流行的开源RDBMS之一&#xff0c;MySQL提供了多种优化手段&#xff0c;其中InnoDB存储引擎的缓冲池&#xff08;Buffer Pool&#xff09;是最为关键的…

小埋公司的IPO方案的题解

目录 原题描述&#xff1a; 题目描述 输入格式 输出格式 输出格式 样例 #1 样例输入 #1 样例输出 #1 样例 #2 样例输入 #2 样例输出 #2 提示 题目大意&#xff1a; 主要思路&#xff1a; 但是but 代码code&#xff1a; 时间限制: 500ms 空间限制: 65536kB 原题…

pytest 参数化测试用例构建

在之前的文章中主要分享了 pytest 的实用特性&#xff0c;接下来讲 Pytest 参数化用例的构建。 如果待测试的输入与输出是一组数据&#xff0c;可以把测试数据组织起来用不同的测试数据调用相同的测试方法。参数化顾名思义就是把不同的参数&#xff0c;写到一个集合里&#xf…

Apipost智能Mock教程

在接口开发过程中&#xff0c;Mock功能可以帮助开发者快速测试和验证接口的正确性和稳定性&#xff0c;以便快速迭代和修复问题。Apipost推出智能Mock功能&#xff0c;可以在智能期望中填写一些触发条件&#xff0c;开启后&#xff0c;Apipost会根据已设置的触发条件&#xff0…

大创项目推荐 疫情数据分析与3D可视化 - python 大数据

文章目录 0 前言1 课题背景2 实现效果3 设计原理4 部分代码5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 大数据全国疫情数据分析与3D可视化 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff0…

力扣70. 爬楼梯(动态规划 Java,C++解法)

Problem: 70. 爬楼梯 文章目录 题目描述思路解题方法复杂度Code 题目描述 思路 由于本题目中第i层台阶只能由于第i- 1层台阶和第i-2层台阶走来&#xff0c;所以可以联想到动态规划&#xff0c;具体如下&#xff1a; 1.定义多阶段决策模型&#xff1a;对于每一上台阶看作一种状…

zookeeper window 安装

下载 Apache ZooKeeper 解压Zookeeper安装包到指定目录&#xff0c;注意目录不要有空格。 备份zoo_sample.cfg并改名zoo.cfg 注意&#xff1a;此处的路径一定要使用双斜杠" \\ " D:\\apache-zookeeper-3.8.3-bin\\data 新建环境变量&#xff1a;ZOOKEEPER_HOME D…