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