假设我有三个表:Order、Client、Product。
Order表中有列:client_id、product_id,外键分别是Client.id、Product.id
现在我要连接这三个表,返回数据:
OrderMapper.xml:
<select id="selectOrderInfoByOrderId" parameterType="java.lang.Integer" resultType="java.util.Map">
select `order`.id as order_id,products.name as product_name,`order`.quantity as quantity,
`order`.last_time as last_time,client.id as client_id,client.name as client_name,client.address as address,client.type as client_type,status
from `order`
join products
on product_id = products.id
join client
on client_id = client.id
where `order`.id = #{id,jdbcType=INTEGER}
</select>
OrderDao中实现:
Map<String,Object> selectOrderInfoByOrderId(Integer id);
- 1
注意这是单项查询,如果查询结果有多个行怎么办?比如:
<select id="selectOrderInfo" resultType="java.util.Map">
select `order`.id as order_id,products.name as product_name,`order`.quantity as quantity,
`order`.last_time as last_time,client.id as client_id,client.name as client_name,client.address as address,client.type as client_type,status
from `order`
join products
on product_id = products.id
join client
on client_id = client.id
</select>
OrderDao中实现:
List<Map<String,Object>> selectOrderInfo();
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)