在 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 方法中用硬编码还是参数传递更合适?的详细内容,更多请关注其它相关文章!