第十四章 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.入门-课程介绍

第十四章 MyBatis_第1张图片
第十四章 MyBatis_第2张图片

2.入门-快速入门程序

第十四章 MyBatis_第3张图片
第十四章 MyBatis_第4张图片
第十四章 MyBatis_第5张图片
在这里插入图片描述
第十四章 MyBatis_第6张图片

不需要的删除
第十四章 MyBatis_第7张图片
第十四章 MyBatis_第8张图片
第十四章 MyBatis_第9张图片
第十四章 MyBatis_第10张图片
第十四章 MyBatis_第11张图片

Springboot自带配置文件
第十四章 MyBatis_第12张图片

这里的mapper包就相当于三层架构里面的Dao这个包
第十四章 MyBatis_第13张图片

下面我们测试一下
第十四章 MyBatis_第14张图片
第十四章 MyBatis_第15张图片
第十四章 MyBatis_第16张图片
第十四章 MyBatis_第17张图片
第十四章 MyBatis_第18张图片
第十四章 MyBatis_第19张图片

3.配置SQL提示

现在这里我的SQL语句写错了也不会报错
第十四章 MyBatis_第20张图片
第十四章 MyBatis_第21张图片

如果没有提示表名或者表爆红了,我们需要进行配置
第十四章 MyBatis_第22张图片

4.入门-JDBC

第十四章 MyBatis_第23张图片
第十四章 MyBatis_第24张图片
第十四章 MyBatis_第25张图片
第十四章 MyBatis_第26张图片
第十四章 MyBatis_第27张图片
第十四章 MyBatis_第28张图片

5.入门-数据库连接池

第十四章 MyBatis_第29张图片
第十四章 MyBatis_第30张图片
Hikari是springboot自带的连接池
第十四章 MyBatis_第31张图片

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

6.入门-lombok工具包介绍

第十四章 MyBatis_第36张图片
第十四章 MyBatis_第37张图片

引入依赖
第十四章 MyBatis_第38张图片
第十四章 MyBatis_第39张图片
第十四章 MyBatis_第40张图片

老idea版本要自己装
第十四章 MyBatis_第41张图片

7.基础操作-环境准备

在这里插入图片描述
第十四章 MyBatis_第42张图片
第十四章 MyBatis_第43张图片
第十四章 MyBatis_第44张图片
准备数据库表
第十四章 MyBatis_第45张图片
第十四章 MyBatis_第46张图片
emp表中的数据
第十四章 MyBatis_第47张图片
第十四章 MyBatis_第48张图片
第十四章 MyBatis_第49张图片

下面是需要的依赖
第十四章 MyBatis_第50张图片
第十四章 MyBatis_第51张图片
第十四章 MyBatis_第52张图片
第十四章 MyBatis_第53张图片
第十四章 MyBatis_第54张图片

8.基础操作-删除

第十四章 MyBatis_第55张图片
id为17的删除成功
第十四章 MyBatis_第56张图片
第十四章 MyBatis_第57张图片

其实delete操作是有返回值,返回的是此次操作影响几条记录数
只是这里我们不需要
第十四章 MyBatis_第58张图片
17之前已经删除
所以返回的是0
0表示没有影响任何记录
第十四章 MyBatis_第59张图片
第十四章 MyBatis_第60张图片
第十四章 MyBatis_第61张图片

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

第十四章 MyBatis_第62张图片
第十四章 MyBatis_第63张图片
第十四章 MyBatis_第64张图片
第十四章 MyBatis_第65张图片
下面这种就是SQL注入
即使我们没有正确的用户名密码,我们也登入成功了
第十四章 MyBatis_第66张图片

下面是预编译SQL的情况
第十四章 MyBatis_第67张图片
第十四章 MyBatis_第68张图片
第十四章 MyBatis_第69张图片

$(…)一般是对表名或者字段名进行动态设置的时候使用
第十四章 MyBatis_第70张图片

第十四章 MyBatis_第71张图片

10.基础操作-新增

第十四章 MyBatis_第72张图片
第十四章 MyBatis_第73张图片
第十四章 MyBatis_第74张图片
第十四章 MyBatis_第75张图片
第十四章 MyBatis_第76张图片
第十四章 MyBatis_第77张图片

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

第十四章 MyBatis_第78张图片

我这里在插入一条记录后
然后返回这条记录的主键id
返回失败了
第十四章 MyBatis_第79张图片

默认情况下,这条主键值是不会返回的
第十四章 MyBatis_第80张图片

如果我们要返回这个主键值
第十四章 MyBatis_第81张图片
第十四章 MyBatis_第82张图片

主键值返回成功
第十四章 MyBatis_第83张图片

12.基础操作-更新

第十四章 MyBatis_第84张图片
第十四章 MyBatis_第85张图片
第十四章 MyBatis_第86张图片
第十四章 MyBatis_第87张图片

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

第十四章 MyBatis_第88张图片
第十四章 MyBatis_第89张图片
第十四章 MyBatis_第90张图片
在这里插入图片描述

有个问题
后面三个全为空
第十四章 MyBatis_第91张图片
第十四章 MyBatis_第92张图片

方法一:
给字段起一个别名
第十四章 MyBatis_第93张图片

方法二:
第十四章 MyBatis_第94张图片

方法三:
第十四章 MyBatis_第95张图片
第十四章 MyBatis_第96张图片
第十四章 MyBatis_第97张图片
第十四章 MyBatis_第98张图片

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

第十四章 MyBatis_第99张图片

这里的#{name}是在‘’内,不可以
第十四章 MyBatis_第100张图片
我们这样可以使用 $ {name},$ 表示拼接
第十四章 MyBatis_第101张图片
第十四章 MyBatis_第102张图片
第十四章 MyBatis_第103张图片
第十四章 MyBatis_第104张图片
第十四章 MyBatis_第105张图片
第十四章 MyBatis_第106张图片

15.XML映射文件

第十四章 MyBatis_第107张图片

这里我们用 . 分割会出现问题
第十四章 MyBatis_第108张图片
第十四章 MyBatis_第109张图片
第十四章 MyBatis_第110张图片
第十四章 MyBatis_第111张图片
第十四章 MyBatis_第112张图片
第十四章 MyBatis_第113张图片
第十四章 MyBatis_第114张图片

去MyBatis中文网复制约束
第十四章 MyBatis_第115张图片
第十四章 MyBatis_第116张图片

获取EmpMapper的全类名
第十四章 MyBatis_第117张图片
第十四章 MyBatis_第118张图片
第十四章 MyBatis_第119张图片
第十四章 MyBatis_第120张图片
第十四章 MyBatis_第121张图片
第十四章 MyBatis_第122张图片
第十四章 MyBatis_第123张图片
第十四章 MyBatis_第124张图片
第十四章 MyBatis_第125张图片

16.动态SQL-if

第十四章 MyBatis_第126张图片
第十四章 MyBatis_第127张图片
第十四章 MyBatis_第128张图片

如果只传gender项,会报错,因为多了一个and
第十四章 MyBatis_第129张图片
第十四章 MyBatis_第130张图片
第十四章 MyBatis_第131张图片
第十四章 MyBatis_第132张图片

17.if-案例

我们这里只要更新三个字段
第十四章 MyBatis_第133张图片
将其他不需要更新的字段删除
第十四章 MyBatis_第134张图片
下面是没有更新前id为18的用户信息
第十四章 MyBatis_第135张图片

我们在更新后发现,我们不需要更新的部分变为null了
第十四章 MyBatis_第136张图片

原因是sql语句中更新的字段都是固定死的
意味着每一次我们都要更新这些字段
第十四章 MyBatis_第137张图片
第十四章 MyBatis_第138张图片

要使用动态sql,注解十分不方便
我们要到xml映射文件中进行操作
第十四章 MyBatis_第139张图片

现在我们再进行存储
第十四章 MyBatis_第140张图片

Id为19的更新成功
第十四章 MyBatis_第141张图片

下面我们只更新id为19的username
第十四章 MyBatis_第142张图片

原因是多了一个 ,
第十四章 MyBatis_第143张图片

这里mybatis中提供了< set>< /set>标签来解决这种问题
第十四章 MyBatis_第144张图片
第十四章 MyBatis_第145张图片
第十四章 MyBatis_第146张图片

18.动态sql-forEach

第十四章 MyBatis_第147张图片
如果我们要执行批量删除
比如删除18,19,20三条记录
第十四章 MyBatis_第148张图片
第十四章 MyBatis_第149张图片
删除成功
第十四章 MyBatis_第150张图片

我们将id值封装在ids集合中传递进来
第十四章 MyBatis_第151张图片
第十四章 MyBatis_第152张图片
第十四章 MyBatis_第153张图片
删除成功
第十四章 MyBatis_第154张图片
第十四章 MyBatis_第155张图片

19.sql&include

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

你可能感兴趣的:(JAVAWEB2,mybatis,java,性能优化)