扫码阅读
手机扫码阅读

SpringBoot-5-MyBatis最佳实践分享

199 2024-07-17

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

查看原文:SpringBoot-5-MyBatis最佳实践分享
文章来源:
springboot葵花宝典
扫码关注公众号

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片段重复。

这个HTML摘要提供了原文的结构化总结,分为不同部分,每部分涵盖了原文的关键内容,使读者能快速掌握文章的要点。

想要了解更多内容?

查看原文:SpringBoot-5-MyBatis最佳实践分享
文章来源:
springboot葵花宝典
扫码关注公众号