查询功能
接收数据
1、若查询出的数据只有一条,可以通过实体类对象 / List / Map 接收
2、若查询出的数据有多条,可以通过泛型为 List / Map 接收,否则抛异常 TooManyResultsException
查询一个实体类对象
<!-- User getUserById(@Param("id") int id); -->
<select id="getUserById" resultType="User">
select * from users where id = #{id}
</select>
查询一个 List 集合
<!-- List<User> getUserList(); -->
<select id="getUserList" resultType="User">
select * from users
</select>
查询单个数据
<!-- Integer getCount(); -->
<select id="getCount" resultType="integer">
select count(id) from users
</select>
MyBatis 内置 Java 类型别名
别名 | 映射的类型 |
_byte | byte |
_long | long |
_short | short |
_int、_integer | int |
_double | double |
_float | float |
_boolean | boolean |
string | String |
byte | Byte |
long | Long |
short | Short |
int、integer | Integer |
double | Double |
float | Float |
boolean | Boolean |
date | Date |
decimal、bigdecimal | BigDecimal |
object | Object |
map | Map |
hashmap | HashMap |
list | List |
arraylist | ArrayList |
collection | Collection |
iterator | Iterator |
查询一条数据为 Map 集合
1、Map<String, Object>,value 为 Object,确保接收到数据
2、结果集 Map:key 为字段名,value 为对应的字段值
3、应用:不存在与结果集相对应的 POJO,如:多表查询
<!-- Map<String, Object> getUserToMap(@Param("id") Integer id); -->
<select id="getUserToMap" resultType="map">
select * from users where id = #{id}
</select>
查询多条数据为 Map 集合
1、以泛型为 Map 的 List 接收
<!-- List<Map<String, Object>> getAllUserToMap();-->
<select id="getAllUserToMap" resultType="map">
select * from t_user
</select>
2、以 Map 接收,@MapKey:需要设置 Map 集合中的 key,key 为结果集的某个字段名,value 为 key 所对应的 Map 集合,必须确保键是唯一的,否则 value 会被覆盖
@MapKey("id")
Map<String, Object> getAllUserToMap();
<select id="getAllUserToMap" resultType="map">
select * from t_user
</select>
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战