java三级联动后端代码

以市区县为例,第一级直接把市查出来就行,第二级根据市的名称查出区,第三级根据市、区的名称查出县。这里的市县区都是在同一张表。存在hashmap里。三个接口

第一级

直接从数据库把市全部查出即可
mapper

	List<Map<String, String>> city();

mapper.xml


<select id="city" resultType="java.util.LinkedHashMap">
    select 市 from 表名
</select>

service

	//	这里的resultMap可以作为参数传进去,也可以像第二级,第三极那样直接在serviceImpl里new一个也行
	Map<String, Object> city(Map<String, Object> resultMap);

serviceImpl

public Map<String, Object> city(Map<String, Object> resultMap) {
		List<Map<String, String>> city= pacakageAreaMapper.city();
		resultMap.put("city", city);
		return resultMap;
	}

controller

	@RequestMapping("/")
	public Map<String, Object> city() {
		Map<String, Object> list = pacakageAreaService.city(resultMap);
		return list;
	}

第二级

根据第一级查询出来的市,查找出县。sql就是根据市的名称查找出区
mapper层

List<Map<String, String>> 
area(@Param("city") String city);

mapper.xml

<select id="area" resultType="java.util.LinkedHashMap">
       		select 区 from 表名
				where 市=#{}
    </select>

service层

Map<String,Object> area(@Param("city") String city);

serviceImpl

	public Map<String, Object> area(String city) {
		List<Map<String, String>> area= pacakageAreaMapper.area(city);
		//这里的map必须要重新new一个,不能作为参数传进来,因为作为参数传进来的话,后面多次试验都会存在同一个map里面,不会覆盖。所以要new一个把之前的结果清掉,只要最新的结果(第三级也是一样)
		HashMap<String, Object> map = new HashMap<>();
		map.put("area",area);
		return map;
	}

controller

	@RequestMapping("/")
	public Map<String, Object> area(String city){
		return pacakageAreaService.area(city);
	}

第三级

根据第二级查询出来的县,查找出区。sql就是根据市、区的名称查找出县(这里的市区县三个都在同一张表)
mapper

List<Map<String, String>> county(@Param("city") String city,@Param("area") String area);

mapper.xml

    <select id="county" resultType="java.util.LinkedHashMap">
        		select 县 from 表名
				where 市=#{} and 区=#{}
    </select>

service

Map<String,Object> county(@Param("city") String city,@Param("area") String area);

serviceImpl

	public Map<String, Object> county(String city,String area) {
		List<Map<String, String>> county= pacakageAreaMapper.couty(city, area);
		//跟第二级一样
		HashMap<String, Object> maps = new HashMap<>();
		maps.put("county",county);
		return maps;
	}

controller

	@RequestMapping("/")
	public Map<String, Object> county(String city,String county){
		return pacakageAreaService.county(city,county);
	}

大致就是这样了。。。。

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值