在 Spring Boot 中链接 MySQL 时, MyBatis 方法中用硬编码还是参数传递更合适?

在 spring boot 中链接 mysql 时, mybatis 方法中用硬编码还是参数传递更合适?

Spring Boot 中链接 MySQL 时,需要注意的 MyBatis 问题

一、背景

假设存在一个名为 "animal" 的 SQL 表,其结构如下:

列名 类型
id 整数
name 字符串
type 字符串
age 整数

表包含以下数据:

id name type age
1 白胖 cat 12
2 泰哥 cat 10
3 大G dog 9
4 墨宝 sheep 6

二、问题

编写一个 MyBatis 方法 queryCatFromXXX(),从 "animal" 表中获取所有类型为 "cat" 的数据。在 SQL 语句中,条件 "type=cat" 可以:

  • 硬编码在 SQL:select * from animal where type="cat"
  • 通过参数传递:select * from animal where type=#{type}

那么,在以下情况下,哪种做法更合适:

  • 方法明确用于查询 "cat" 相关数据
  • 存在更灵活的方法,可以查询不同类型的动物数据

三、答案

推荐在 MyBatis 方法中通过 传递 type 参数来获取数据

Service 层考虑是否需要更灵活的方法,比如根据类型枚举获取数据。如果需要:

  • 在 Service 层创建一个方法,传入类型枚举参数。
  • 在方法内部,根据类型枚举构建查询条件。
  • Controller 直接调用方法,传入 "cat" 值枚举。

如果不需要更灵活的方法,可以在 Service 层创建特定方法,如获取转移动物数据。该方法内部实现条件筛选,调用者直接调用方法即可获取需要转移动物的数据。

以上就是在 Spring Boot 中链接 MySQL 时, MyBatis 方法中用硬编码还是参数传递更合适?的详细内容,更多请关注其它相关文章!