SpringBoot-5-MyBatis最佳实践分享
![](/theme/default/default/images/main/eye-open.png)
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
![](/theme/default/default/images/main/icon-jing.png)
MyBatis最佳实践分享
1.1 需求
需求说明:完成学生管理的需求开发,包括查询(根据主键ID查询和条件查询)、新增、更新、删除(根据主键ID删除和根据主键ID批量删除)。
1.2 准备
准备工作包括准备数据库表、创建springboot工程、配置application.yml文件、创建实体类Student以及准备Mapper接口StudentMapper。
1.3 删除
1.3.1 功能实现
删除功能通过根据ID删除数据实现,MyBatis框架关注SQL语句,使用@Delete注解定义接口方法。
1.3.2 日志输出
Mybatis通过日志输出sql语句执行情况,配置文件中开启mybatis的日志输出到控制台。
1.3.3 预编译SQL
预编译SQL有更高的性能和更好的安全性,防止SQL注入。Mybatis中参数占位符使用#{...}防注入,${...}存在注入问题。
1.4 新增
1.4.1 基本新增
新增功能通过insert语句和@Insert注解实现,使用#{...}进行参数传递。
1.6 查询
1.6.1 根据ID查询
根据ID查询通过select语句和@Select注解实现,可能需要使用别名和结果映射处理字段名不一致问题。
1.6.2 数据封装
数据封装处理实体类属性名和数据库字段名不一致问题,可以通过起别名、结果映射或开启驼峰命名。
2.3 MybatisX的使用
MybatisX是基于IDEA的Mybatis开发插件,官方推荐注解用于简单SQL,复杂SQL使用XML配置。
3. Mybatis动态SQL
3.1 什么是动态SQL
动态SQL是根据输入或条件变化的SQL语句。
3.2 动态SQL-if
动态SQL-if通过test判断条件拼接SQL,where元素自动插入where子句和去除AND/OR,set元素用于动态插入update语句中的set关键字。
3.3 动态SQL-foreach
动态SQL-foreach用于遍历集合进行批量删除。
3.4 动态SQL-sql&include
动态SQL-sql&include通过sql和include标签避免SQL片段重复。
想要了解更多内容?
![](/theme/default/default/images/main/icon-jing.png)
![](https://cdn.easycorp.cn/rongpm/upload/202312/f_39217d624bb2b42ce8f6322ebd7e573a.png)
![](https://cdn.easycorp.cn/rongpm/upload/202312/f_39217d624bb2b42ce8f6322ebd7e573a.png)