最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot進(jìn)行多表查詢功能的實(shí)現(xiàn)

 更新時(shí)間:2021年09月14日 15:03:44   作者:vid。  
這篇文章主要介紹了SpringBoot進(jìn)行多表查詢功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

實(shí)體類:

Emp 類:

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Emp {
    private int id;
    private String lastname;
    private String email;
    private int gender;
    private int did;
    private Dept dept;
    private Date birth = new Date();
}

Dept類:

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Dept {
    private int id;
    private String dname;
}

Mapper接口

EmpMapper:

//這個(gè)注解表示這是一個(gè)mybatis的mapper類
@Mapper
@Repository
public interface EmpMapper {
    void addEmp(Emp emp);
    void deleteEmp(int id);
    void updateEmp(Emp emp);
    Emp queryEmpById(int id);
    List<Emp> queryEmpList();
}

DeptMapper:

@Mapper
@Repository
public interface DeptMapper {
    List<Dept> queryDeptList(@Param("cid") int cid);
}

EmpMapper.xml 配置文件

<mapper namespace="com.acoffee.mapper.EmpMapper">

    <resultMap id="EmpMap" type="Emp">
        <id column="id" property="id"></id>
        <id column="lastname" property="lastname"></id>
        <id column="email" property="email"></id>
        <id column="gender" property="gender"></id>
        <association property="dept" select="com.acoffee.mapper.DeptMapper.queryDeptList" column="did"></association>
    </resultMap>

    <select id="queryEmpList" resultMap="EmpMap">
        select * from emp_dept.employees
    </select>

</mapper>

DeptMapper.xml配置文件

<mapper namespace="com.acoffee.mapper.DeptMapper">

    <select id="queryDeptList" resultType="Dept">
        select * from emp_dept.department where id = #{id};
    </select>
    
</mapper>

前端頁(yè)面(部分)

<tr th:each="emp:${emps}">
	  <td th:text="${emp.getId()}"></td>
	  <td th:text="${emp.getLastname()}"></td>
	  <td th:text="${emp.getEmail()}"></td>
	  <td th:text="${emp.getGender()==0?'女':'男'}"></td>
	  <td th:text="${emp.dept.getDname()}"></td>
	  <td th:text="${#dates.format(emp.getBirth(),'yyyy-MM-dd HH:mm:ss')}"></td>
	  <td>
	      <a class="btn btn-sm btn-primary" th:href="@{/emp/{id}/(id=${emp.getId()})}" rel="external nofollow" >編輯</a>
	      <a class="btn btn-sm btn-danger" th:href="@{/delemp/{id}/(id=${emp.getId()})}" rel="external nofollow" >刪除</a>
	  </td>
</tr>

查詢結(jié)果:

在這里插入圖片描述

上述我們采用的是分步查詢。

我們下面使用association嵌套映射

其實(shí)這里查詢會(huì)出現(xiàn)一個(gè)奇怪的事情,

在這里插入圖片描述
在這里插入圖片描述

因?yàn)槲覀儸F(xiàn)在兩個(gè)表中都有id這個(gè)字段,所以我們?cè)谟成鋾r(shí)使用<result property="id" column="id"></result>去查找部門(mén)的id時(shí)就發(fā)現(xiàn)查出來(lái)的是員工的id,就是因?yàn)閱T工的id與部門(mén)的id字段名重名了?

EmpMapper:

<mapper namespace="com.acoffee.mapper.EmpMapper">

    <resultMap id="EmpMap" type="Emp">
        <id column="id" property="id"></id>
        <id column="lastname" property="lastname"></id>
        <id column="email" property="email"></id>
        <id column="gender" property="gender"></id>
        <association property="dept" javaType="com.acoffee.pojo.Dept">
            <result property="id" column="id"></result>
            <result property="dname" column="dname"></result>
        </association>
    </resultMap>

    <select id="queryEmpList" resultMap="EmpMap">
        select emp.*,dept.* from emp_dept.employees emp,emp_dept.department dept where emp.did = dept.id
    </select>
</mapper>

上述執(zhí)行結(jié)果如下

在這里插入圖片描述

我們發(fā)現(xiàn)是員工id,我們現(xiàn)在將數(shù)據(jù)庫(kù)中部門(mén)表的id改為pid

在這里插入圖片描述

修改配置文件以及實(shí)體類

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Dept {
    private int pid;
    private String dname;
}
<mapper namespace="com.acoffee.mapper.EmpMapper">

    <resultMap id="EmpMap" type="Emp">
        <id column="id" property="id"></id>
        <id column="lastname" property="lastname"></id>
        <id column="email" property="email"></id>
        <id column="gender" property="gender"></id>
        <association property="dept" javaType="com.acoffee.pojo.Dept">
            <result property="pid" column="pid"></result>
            <result property="dname" column="dname"></result>
        </association>
    </resultMap>

    <select id="queryEmpList" resultMap="EmpMap">
        select emp.*,dept.* from emp_dept.employees emp,emp_dept.department dept where emp.did = dept.pid
    </select>

</mapper>

執(zhí)行結(jié)果:

在這里插入圖片描述

我們就發(fā)現(xiàn)查詢的就是部門(mén)的id了

在這里插入圖片描述

但是針對(duì)上面這個(gè)問(wèn)題我們將部門(mén)的id字段名改為did (did在員工表中也存在) 此時(shí)我們?cè)偃ゲ樵冇职l(fā)現(xiàn)還是可以把部門(mén)id查詢出來(lái)

在這里插入圖片描述

這個(gè)問(wèn)題就離譜,難道是因?yàn)閕d是主鍵,did不是主鍵的原因?就離譜

到此這篇關(guān)于SpringBoot進(jìn)行多表查詢的文章就介紹到這了,更多相關(guān)SpringBoot多表查詢內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring Boot與Docker部署詳解

    Spring Boot與Docker部署詳解

    本篇文章主要介紹了Spring Boot與Docker部署詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • Java為圖片添加水印并保存實(shí)現(xiàn)方法(附帶源碼)

    Java為圖片添加水印并保存實(shí)現(xiàn)方法(附帶源碼)

    這篇文章主要介紹了如何使用Java編程語(yǔ)言在圖像上添加文字或圖片水印,并提供了一個(gè)簡(jiǎn)單的Java程序?qū)崿F(xiàn),文中給出了詳細(xì)的代碼示例,需要的朋友可以參考下
    2025-03-03
  • idea導(dǎo)入項(xiàng)目爆紅問(wèn)題記錄以及解決

    idea導(dǎo)入項(xiàng)目爆紅問(wèn)題記錄以及解決

    這篇文章主要介紹了idea導(dǎo)入項(xiàng)目爆紅問(wèn)題記錄以及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • JavaWeb中上傳和下載文件實(shí)例代碼

    JavaWeb中上傳和下載文件實(shí)例代碼

    這篇文章主要介紹了JavaWeb中上傳和下載文件實(shí)例代碼,需要的朋友可以參考下
    2017-06-06
  • SpringCloud Stream使用解析

    SpringCloud Stream使用解析

    這篇文章主要介紹了SpringCloud Stream介紹,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • Spring AOP中使用args表達(dá)式的方法示例

    Spring AOP中使用args表達(dá)式的方法示例

    這篇文章主要介紹了Spring AOP中使用args表達(dá)式的方法,結(jié)合實(shí)例形式分析了spring面向切面AOP中使用args表達(dá)式具體步驟、相關(guān)實(shí)現(xiàn)技巧與操作注意事項(xiàng),需要的朋友可以參考下
    2020-01-01
  • SpringBoot+websocket實(shí)現(xiàn)消息對(duì)話功能

    SpringBoot+websocket實(shí)現(xiàn)消息對(duì)話功能

    WebSocket是一種在Web應(yīng)用程序中實(shí)現(xiàn)實(shí)時(shí)雙向通信的技術(shù),它可以用于在線游戲、在線聊天、推送通知、實(shí)時(shí)監(jiān)控等,并且比傳統(tǒng)的輪詢技術(shù)更加高效和可靠,本文就給大家介紹基于SpringBoot+websocket實(shí)現(xiàn)消息對(duì)話功能,感興趣的小伙伴可以自己動(dòng)手試一試
    2023-09-09
  • 詳解java中Reference的實(shí)現(xiàn)與相應(yīng)的執(zhí)行過(guò)程

    詳解java中Reference的實(shí)現(xiàn)與相應(yīng)的執(zhí)行過(guò)程

    不知道大家知不知道特殊的reference對(duì)象都是被jvm專門(mén)處理的,所以這篇文章就相應(yīng)的工作流程和referencequeue之間的協(xié)作進(jìn)行梳理.有需要的朋友們可以參考借鑒。
    2016-09-09
  • java集成開(kāi)發(fā)SpringBoot生成接口文檔示例實(shí)現(xiàn)

    java集成開(kāi)發(fā)SpringBoot生成接口文檔示例實(shí)現(xiàn)

    這篇文章主要為大家介紹了java集成開(kāi)發(fā)SpringBoot如何生成接口文檔的示例實(shí)現(xiàn)過(guò)程,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-10-10
  • 如何對(duì)spring框架的搭建進(jìn)行封裝--springboot

    如何對(duì)spring框架的搭建進(jìn)行封裝--springboot

    這篇文章主要介紹了如何對(duì)spring框架的搭建進(jìn)行封裝--springboot,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-03-03

最新評(píng)論

武义县| 临漳县| 丁青县| 望江县| 奉节县| 华阴市| 日喀则市| 大安市| 汾西县| 郓城县| 汝阳县| 宾阳县| 衡东县| 南平市| 磐石市| 惠安县| 海盐县| 营口市| 高雄市| 景宁| 芮城县| 垣曲县| 阿图什市| 沈阳市| 崇信县| 团风县| 静海县| 措勤县| 同江市| 岑巩县| 湘阴县| 台中市| 昌邑市| 扎兰屯市| 遵义县| 黄浦区| 乐至县| 乌海市| 双牌县| 延长县| 铁岭市|