文章目录
1、详情功能—界面展示
2、详情功能–后台代码
RouteServiceTest
@Test
public void test03() throws JsonProcessingException {
//业务,根据 路线的rid查找 路线的数据,商家的数据,分类的数据,收藏的数据
RouteService routeService = new RouteService();
int rid = 1;
Route route = routeService.findRouteById(rid);
System.out.println(route);
}
需要返回的route对象内部包含 路线的数据,商家的数据,分类的数据,图片的数据
扩展Route实体类
//分类数据
private Category category;
//商家数据
private Seller seller;
//图片数据
private List<RouteImg> imgList;
Seller.java
public class Seller {
private int sid;//商家id
private String sname;//商家名称
private String consphone;//商家电话
private String address;//商家地址
}
RouteImg.java
public class RouteImg {
private int rgid;//商品图片id
private int rid;//旅游商品id
private String bigPic;//详情商品大图
private String smallPic;//详情商品小图
}
RouteService
(1)通过分析,数据来自四个表,所以可以考虑2,或者3查询方案
(2)使用Mybatis其实核心 是开发者的sql能力。
# rid =1
# 路线表 tab_route
# 商家表 tab_seller
# 图片表 tab_route_img
# 分类表 tab_category
select * from tab_route r where r.rid =1 ;
select *
from tab_route r,tab_seller s
where r.rid =1
and r.sid=s.sid ;
# 方式1:内连接查询的话,因为出现重复的数据,放弃
select *
from tab_route r,tab_seller s,tab_route_img i
where r.rid =1
and r.sid=s.sid
and r.rid = i.rid;
# 方式2:内连接查询的话,必须一对一
# 一个路线属于一个商家, 一个路线属于一个分类
# 一个路线可以包含多个图片
select *
from tab_route r,tab_seller s,tab_category c
where r.rid =1
and r.sid=s.sid
and r.cid = c.cid;
# 还差图片数据
select * from tab_route_img i where i.rid=1;
#方式3: 详情数据来自四个表,拆成四个查询语句
select * from tab_route r where r.rid = 1; #路线
select * from tab_seller s where s.sid = 1; #商家数据
select * from tab_route_img i where i.rid=1;#图片数据
select * from tab_category c where c.cid =1;#分类数据