8.MyBatis 操作数据库(进阶)

发布于:2024-05-11 ⋅ 阅读:(26) ⋅ 点赞:(0)

大家好,我是晓星航。今天为大家带来的是 MyBatis 操作数据库(进阶) 相关的讲解!😀

1.动态SQL插入

1.1使用注解方式插入数据

使用标签判断gender为不为空,并注入数据

image-20240322193856495

接口代码:

image-20240322193457246

test测试代码:

image-20240322193523851

运行:

image-20240322193713973

运行前:

image-20240322193636435

运行后:

image-20240322193733608

1.2使用xml方式插入数据

.xml文件配置输入:

image-20240322195105419

在接口中定义一个新方法:

image-20240322195131511

test测试代码:

image-20240322195217038

运行:

image-20240322195423555

运行前:

image-20240322193733608

运行后:

image-20240322195328212

1.3何时用注解何时用xml?

什么时候用注解,什么用xml方式
全凭个人喜好

进入公司之后用什么方式?
1.先看公司/团队 是否有要求(互联网公司大多没要求
2.先看同事用什么方式,同事用什么你用什么
3.如果同事用什么的都有

如果自由选择:
1.简单SQL 使用注解
2.动态SQL 使用xml

当前企业中的状态:
差不多55分,看团队的年轻状态(年龄比较小的喜欢注解)

1.4使用SQL查询中有多个and时,如何自动去除多余and

image-20240322200120273 image-20240322200126757

去除and

未加上trim标签时

可以看到修改完后代码报错了,那么是为什么呢?

image-20240322202947420

我们回到.xml文件中查找,发现我们注释掉id和name后,gender前面还有个and因此报错

image-20240322203057672

1.4.1方法一:删除and之后的代码如图所示,再次运行

image-20240322203226909

这次发现了四个结果:

image-20240322203410297

1.4.2方法二:加上trim标签后可以直接查询也不会报错

使用trim标签动态删减and

.xml文件:

image-20240322203736789

test测试文件代码:

image-20240322203941084

image-20240322203410297

查询到了四个结果

查询id去除and,使用trim

image-20240322204147973

运行结果:

image-20240322204108878

1.4.3方法三:使用 where标签,也可以自动去除多余and

.xml文件:

image-20240322204507672

test测试文件代码:

image-20240322204602600

运行结果:

image-20240322204638402

1.4.4<trim><where>优缺点对比

trim标签:

image-20240322204856104

where标签:

image-20240322205014764

2.动态SQL查询

2.1使用xml方式查询数据

.xml文件配置输入:

image-20240322202446735

在接口中定义一个新方法:

image-20240322202540388

test测试代码:

image-20240322202601122

运行:

image-20240322202627082

如果只保留查询女那么结果会变为什么呢?

image-20240322202902393

可以看到修改完后代码报错了,那么是为什么呢?

image-20240322202947420

我们回到.xml文件中查找,发现我们注释掉id和name后,gender前面还有个and因此报错

image-20240322203057672

删除and之后的代码如图所示,再次运行

image-20240322203226909

这次发现了四个结果:

image-20240322203410297

数据表student所有结果:

image-20240322203436969

2.2使用注解查询数据

使用trim标签:

.xml文件:

image-20240322203736789

test测试代码:

image-20240322210226906

运行结果:

image-20240322210311650

使用where标签:

.xml文件:

image-20240322210138823

test测试代码:

image-20240322210240895

运行结果:

image-20240322210351554

3.动态SQL修改

3.1使用xml方式修改数据

3.1.1一般版本

.xml文件配置输入:

image-20240322211407651

在接口中定义一个新方法:

image-20240322211430741

test测试代码:

image-20240322211444919

运行:

image-20240322211514835

3.1.2使用<trim>标签版本

image-20240322211621154

3.1.3使用<set>标签版本

image-20240322211938460

3.2使用注解方式修改数据

3.2.1使用<set>标签

.xml文件:

image-20240322212647999

test测试代码:

image-20240322212710056

运行结果:

image-20240322212729665

4.动态SQL删除

4.1使用xml方式删除数据

4.1.1使用<foreach>标签版本 - 批量删除数据

.xml文件配置输入:

image-20240324104423190

在接口中定义一个新方法:

image-20240324104448757

test测试代码:

image-20240324104513467

运行前:

image-20240324104324598

运行后:

image-20240324104607136 image-20240324104624048

4.2使用注解方式删除数据

.xml文件:

image-20240322212647999

test测试代码:

image-20240322212710056

运行结果:

image-20240322212729665

4.3<sql><include>标签

image-20240324105104662

使用这两个标签可以简化代码的写法,将一行代码通过传入一个参数解决

5.知识拓展

5.1DAO层、Service层和Controller层的区别

image-20240324112001591

简化理解:

image-20240324112329505

5.2@Repository和@Mapper

image-20240324112127633

image-20240324112135524

5.3项目报错如何自查

1.定位
2.解决

image-20240324113954937

感谢各位读者的阅读,本文章有任何错误都可以在评论区发表你们的意见,我会对文章进行改正的。如果本文章对你有帮助请动一动你们敏捷的小手点一点赞,你的每一次鼓励都是作者创作的动力哦!😘


网站公告

今日签到

点亮在社区的每一天
去签到