基于springboot和ajax的简单项目 08 sql语句是内联两张表进行查询,返回需要使用List<Map<String,Objects>>

结果需要涉及到多张表的时候,需要如何去使用sql语句?
详细的教学在菜鸟 https://www.runoob.com/sql/sql-join-inner.html
01.sql语句的语法,这里是内联多张表,使用join … on …
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

02.写相关的dao层接口

涉及到多张表,建议使用map数据类型,由于返回的对象是多个,所以需要使用到list数据类型。

package com.cy.dao;

import org.apache.ibatis.annotations.Mapper;

import java.util.List;
import java.util.Map;

@Mapper
public interface sysMenuDao {
    List<Map<String,Object>> findObjects();
}

03.相关的xml映射文件

<select id="findObjects" resultType="map">
         
          <!-- 方案1
          select c.*,p.name parentName
          from sys_menus c left join sys_menus p
          on c.parentId=p.id
          -->
          <!-- 方案2 -->
          select c.*,(
                    select p.name
                    from sys_menus p
                    where c.parentId=p.id
                    ) parentName
          from sys_menus c
         
 </select>

c和p都是表的别名。c是sys_menus的p也是sys_menus的,只是他们表示的是在同一时刻的同种表的两张表。(此处是因为sys_menus本身的一个列名parentId,这个列名就与sys_menus本身的另一个列表名id是一一映射的,parentId表示的是父对象(这个对象也是sys_menus中形成的)的id,id则表示sys_menus的类的对象的识别码(标明身份的))

03.写service接口

package com.cy.dao;

import org.apache.ibatis.annotations.Mapper;

import java.util.List;
import java.util.Map;

@Mapper
public interface sysMenuDao {
    List<Map<String,Object>> findObjects();
}

04.写serviceimpl实现类

package com.cy.pj.sys.service.impl;
@Service
public class SysMenuServiceImpl implements SysMenuService{
          @Autowired
      private SysMenuDao sysMenuDao;
          @Override
          public List<Map<String, Object>> findObjects() {
                List<Map<String,Object>> list=
                        sysMenuDao.findObjects();
                if(list==null||list.size()==0)
                throw new ServiceException("没有对应的菜单信息");
                return list;
}

05.写controller类

import com.cy.common.JsonResult;
import com.cy.service.sysMenuService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/menu/")
public class sysMenuController {
    @Autowired
    sysMenuService sysMenuService;
    @RequestMapping("doFindObjects")
    public JsonResult doFindObjects() {
      return new JsonResult(sysMenuService.findObjects());
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值