文章目录
- 1.动态SQL插入
 - 1.1使用注解方式插入数据
 - 1.2使用xml方式插入数据
 - 1.3何时用注解何时用xml?
 - 1.4使用SQL查询中有多个and时,如何自动去除多余and
 - 1.4.1方法一:删除and之后的代码如图所示,再次运行
 - 1.4.2方法二:加上trim标签后可以直接查询也不会报错
 - 1.4.3方法三:使用 `where`标签,也可以自动去除多余and
 - 1.4.4`<trim>`和`<where>`优缺点对比
 
- 2.动态SQL查询
 - 2.1使用xml方式查询数据
 - 2.2使用注解查询数据
 
- 3.动态SQL修改
 - 3.1使用xml方式修改数据
 - 3.1.1一般版本
 - 3.1.2使用`<trim>`标签版本
 
- 3.2使用注解方式修改数据
 - 3.2.1使用`<set>`标签
 
- 4.动态SQL删除
 - 4.1使用xml方式删除数据
 - 4.1.1使用`<foreach>`标签版本 - 批量删除数据
 
- 4.2使用注解方式删除数据
 - 4.3`<sql><include>`标签
 
- 5.知识拓展
 - 5.1DAO层、Service层和Controller层的区别
 - 5.2@Repository和@Mapper
 - 5.3项目报错如何自查
 
大家好,我是晓星航。今天为大家带来的是 MyBatis 操作数据库(进阶) 相关的讲解!😀
1.动态SQL插入
1.1使用注解方式插入数据
使用标签判断gender为不为空,并注入数据
 
接口代码:
 
test测试代码:
 
运行:

运行前:
 
运行后:
 
1.2使用xml方式插入数据
.xml文件配置输入:
 
在接口中定义一个新方法:
 
test测试代码:
 
运行:

运行前:
 
运行后:
 
1.3何时用注解何时用xml?
什么时候用注解,什么用xml方式
 全凭个人喜好
进入公司之后用什么方式?
 1.先看公司/团队 是否有要求(互联网公司大多没要求
 2.先看同事用什么方式,同事用什么你用什么
 3.如果同事用什么的都有
如果自由选择:
 1.简单SQL 使用注解
 2.动态SQL 使用xml
当前企业中的状态:
 差不多55分,看团队的年轻状态(年龄比较小的喜欢注解)
1.4使用SQL查询中有多个and时,如何自动去除多余and
 
 
去除and
未加上trim标签时
可以看到修改完后代码报错了,那么是为什么呢?

我们回到.xml文件中查找,发现我们注释掉id和name后,gender前面还有个and因此报错
 
1.4.1方法一:删除and之后的代码如图所示,再次运行
 
这次发现了四个结果:

1.4.2方法二:加上trim标签后可以直接查询也不会报错
使用trim标签动态删减and
.xml文件:
 
test测试文件代码:
 

查询到了四个结果
查询id去除and,使用trim

运行结果:

1.4.3方法三:使用 where标签,也可以自动去除多余and
 
.xml文件:
 
test测试文件代码:
 
运行结果:

1.4.4<trim>和<where>优缺点对比
 
trim标签:

where标签:

2.动态SQL查询
2.1使用xml方式查询数据
.xml文件配置输入:

在接口中定义一个新方法:
 
test测试代码:
 
运行:

如果只保留查询女那么结果会变为什么呢?
 
可以看到修改完后代码报错了,那么是为什么呢?

我们回到.xml文件中查找,发现我们注释掉id和name后,gender前面还有个and因此报错
 
删除and之后的代码如图所示,再次运行
 
这次发现了四个结果:

数据表student所有结果:
 
2.2使用注解查询数据
使用trim标签:
.xml文件:
 
test测试代码:
 
运行结果:

使用where标签:
.xml文件:
 
test测试代码:
 
运行结果:
 
3.动态SQL修改
3.1使用xml方式修改数据
3.1.1一般版本
.xml文件配置输入:
 
在接口中定义一个新方法:
 
test测试代码:
 
运行:

3.1.2使用<trim>标签版本
 
 
3.1.3使用<set>标签版本
 
3.2使用注解方式修改数据
3.2.1使用<set>标签
 
.xml文件:
 
test测试代码:
 
运行结果:

4.动态SQL删除
4.1使用xml方式删除数据
4.1.1使用<foreach>标签版本 - 批量删除数据
 
.xml文件配置输入:
 
在接口中定义一个新方法:
 
test测试代码:
 
运行前:
 
运行后:
 
 
4.2使用注解方式删除数据
.xml文件:
 
test测试代码:
 
运行结果:

4.3<sql><include>标签
 

使用这两个标签可以简化代码的写法,将一行代码通过传入一个参数解决
5.知识拓展
5.1DAO层、Service层和Controller层的区别

简化理解:

5.2@Repository和@Mapper


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



















