查询功能

接收数据

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>
posted @   半条咸鱼  阅读(82)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示