第十四章 MyBatis

这篇具有很好参考价值的文章主要介绍了第十四章 MyBatis。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.入门-课程介绍

第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

2.入门-快速入门程序

第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

不需要的删除
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

Springboot自带配置文件
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

这里的mapper包就相当于三层架构里面的Dao这个包
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

下面我们测试一下
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

3.配置SQL提示

现在这里我的SQL语句写错了也不会报错
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

如果没有提示表名或者表爆红了,我们需要进行配置
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

4.入门-JDBC

第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

5.入门-数据库连接池

第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
Hikari是springboot自带的连接池
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

如果在springboot项目中,我想使用druid连接池
第一步:引入依赖 第二步:配置连接信息
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
切换成功
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
下面改不改都可以
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

6.入门-lombok工具包介绍

第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

引入依赖
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

老idea版本要自己装
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

7.基础操作-环境准备

第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
准备数据库表
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
emp表中的数据
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

下面是需要的依赖
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

8.基础操作-删除

第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
id为17的删除成功
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

其实delete操作是有返回值,返回的是此次操作影响几条记录数
只是这里我们不需要
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
17之前已经删除
所以返回的是0
0表示没有影响任何记录
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

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

第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
下面这种就是SQL注入
即使我们没有正确的用户名密码,我们也登入成功了
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

下面是预编译SQL的情况
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

$(…)一般是对表名或者字段名进行动态设置的时候使用
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

10.基础操作-新增

第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

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

第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

我这里在插入一条记录后
然后返回这条记录的主键id
返回失败了
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

默认情况下,这条主键值是不会返回的
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

如果我们要返回这个主键值
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

主键值返回成功
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

12.基础操作-更新

第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

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

第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

有个问题
后面三个全为空
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

方法一:
给字段起一个别名
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

方法二:
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

方法三:
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

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

第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

这里的#{name}是在‘’内,不可以
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
我们这样可以使用 $ {name},$ 表示拼接
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

15.XML映射文件

第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

这里我们用 . 分割会出现问题
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

去MyBatis中文网复制约束
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

获取EmpMapper的全类名
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

16.动态SQL-if

第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

如果只传gender项,会报错,因为多了一个and
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

17.if-案例

我们这里只要更新三个字段
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
将其他不需要更新的字段删除
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
下面是没有更新前id为18的用户信息
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

我们在更新后发现,我们不需要更新的部分变为null了
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

原因是sql语句中更新的字段都是固定死的
意味着每一次我们都要更新这些字段
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

要使用动态sql,注解十分不方便
我们要到xml映射文件中进行操作
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

现在我们再进行存储
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

Id为19的更新成功
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

下面我们只更新id为19的username
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

原因是多了一个 ,
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

这里mybatis中提供了< set>< /set>标签来解决这种问题
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

18.动态sql-forEach

第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
如果我们要执行批量删除
比如删除18,19,20三条记录
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
删除成功
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

我们将id值封装在ids集合中传递进来
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
删除成功
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化

19.sql&include

这里我们不用select*进行查询,下面这样列举出来比较快
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化
上述的操作中有部分sql语句是一样的,如果我们改了某个字段名,所有的sql语句都要进行修改,十分麻烦,在java中我们一般会将其封装到一个方法中,直接改这个方法就行
这里我们同样这样做
第十四章 MyBatis,JAVAWEB2,mybatis,java,性能优化文章来源地址https://www.toymoban.com/news/detail-809266.html

到了这里,关于第十四章 MyBatis的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [C国演义] 第十四章

    力扣链接 常见的子数组问题 ⇒ 要使用动态规划的解法 那么要确定dp数组的含义 ⇒ do[i] — — 以 s[i] 结尾的子数组可不可以用 wordDict中的字符串来表示 那么问题来了, 如何判断字符串[j, i] 在没在wordDict中呢? 我们可以用一个 哈希表 . 将wordDict导入一个哈希表中, count 判读一个

    2024年02月08日
    浏览(40)
  • Android 第十四章 FragmentContainerView

    FragmentContainerView extends FrameLayout FragmentContainerView是专门为Fragments设计的自定义布局。它扩展了FrameLayout,因此它可以可靠地处理Fragment 事务,并且它还具有与Fragment 行为协调的附加特性 FragmentContainerView应用作Fragments的容器,通常设置在活动的xml布局 FragmentContainerView将只允许

    2024年02月11日
    浏览(41)
  • 第十四章 ObjectScript - 系统函数

    本节重点介绍 ObjectScript 中一些最常用的系统函数。 这些函数的名称不区分大小写。 类库还提供了大量实用方法,可以像使用函数一样使用它们。 在给定一些输入的情况下,可以使用以下函数来选择一个值: $CASE 将给定的测试表达式与一组比较值进行比较,然后返回与匹配

    2024年02月10日
    浏览(38)
  • Nodejs 第十四章(process)

    process 是Nodejs操作当前进程和控制当前进程的API,并且是挂载到globalThis下面的全局API API 介绍 1. process.arch 返回操作系统 CPU 架构 跟我们之前讲的os.arch 一样 \\\'arm\\\' 、 \\\'arm64\\\' 、 \\\'ia32\\\' 、 \\\'mips\\\' 、 \\\'mipsel\\\' 、 \\\'ppc\\\' 、 \\\'ppc64\\\' 、 \\\'s390\\\' 、 \\\'s390x\\\' 、以及  \\\'x64\\\' 2. process.cwd() 返回当前的工作目

    2024年02月10日
    浏览(32)
  • 《微服务实战》 第十四章 RabbitMQ应用

    第十六章 Spring cloud stream应用 第十五章 RabbitMQ 延迟队列 第十四章 RabbitMQ应用 一般MQ用于系统解耦、削峰使用,常见于微服务、业务活动等场景。 RabbitMQ整体上是一个生产者与消费者模型,主要负责接收、存储和转发消息。 Producer:生产者,就是投递消息的一方。消息一般可

    2024年02月06日
    浏览(46)
  • 第十四章 使用Vercel部署在线文档

    文档网站需要发布到互联网上才能让更多的人知道。传统的发布方法需要做以下准备。 Linux服务器; 网页服务软件 Nginx; 购买域名 + 实名认证; HTTPS 证书; Sftp 上传工具; Github Action CI 自动发布最新文档。 这里面租用服务器和域名需要一笔花费。安装 Linux、Nginx,配置域名

    2024年02月07日
    浏览(49)
  • 第十四章 TIM基本定时器

    目录 13.1 定时器的分类 13.2 TIM基本定时器简介 13.2.1 定时器的概念和作用 13.2.2 TIM基本定时器的工作原理和使用场景 13.3 TIM基本定时器功能框图 13.3.1 时钟源 13.3.2 控制器 13.3.3 时基(定时器的心脏) 13.3.4 影子寄存器 13.4 TIM基本定时器的初始化和配置方法 13.4.1 定时时间的计算

    2024年02月05日
    浏览(35)
  • 第十四章 Unity 移动和旋转(下)

    本章节我们介绍另外两种形式的旋转,也对应了两个方法。首先是RotateAround方法,他是围绕穿过世界坐标中的 point 点的 axis轴旋转 angle 度。这个方法虽然比较晦涩难懂,但是我们使用一个案例,大家就非常明白了。我们创建一个新的“SampleScene5”场景,然后创建一个“Cube”

    2024年02月08日
    浏览(51)
  • 第十四章 开放条件下的宏观经济

    国际收支是指一个经济体的居民与非居民之间因各种经济往来而发生的收入和支付的系统记录。 国际收支是一个经济概念。 国际收支反映的是以货币数量记录的全部国际经济交易。商品和服务买卖、物物交换、金融资产之间的交换、无偿的单项产品和服务的转移、无偿的单

    2024年02月09日
    浏览(36)
  • 【Rust】Rust学习 第十四章智能指针

    指针  ( pointer )是一个包含内存地址的变量的通用概念。这个地址引用,或 “指向”(points at)一些其他数据。Rust 中最常见的指针是第四章介绍的  引用 ( reference )。引用以   符号为标志并借用了他们所指向的值。除了引用数据没有任何其他特殊功能。它们也没有任

    2024年02月12日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包