欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mybatis 多表關聯mapper文件寫法操作

 更新時間:2020年12月01日 08:44:41   作者:林奇lc  
這篇文章主要介紹了mybatis 多表關聯mapper文件寫法操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

兩張表SystemParam(系統參數表) Suit (主題)

SystemParam 與 Suit 是多對一

Suit 的higerSuit字段是Suit 的父及主題id 是多對一,需要自連接查詢,因為重名所以父表sql字段加別名

mapper方法

Systemparam selectJoinSuit(String strparamcode);

Po類

public class Systemparam {
 //ManyToOne "主題"
 private Suit suitobj;
 private String strparamcode;
 private String strenable;
 private String strparamname;
 //suit表主鍵
 private String suit;
 private String strparamvalue;
} 

public class Suit {
 //ManyToOne
 private Suit suit;
 //主鍵
 private String strsuitcode;
 private String strsuitname;
 //父級id
 private String higersuit;
}

resultMap的寫法

<resultMap id="BaseResultMap" type="net.transino.model.Systemparam" >
 <id column="strParamCode" property="strparamcode" jdbcType="VARCHAR" />
 <result column="strEnable" property="strenable" jdbcType="VARCHAR" />
 <result column="strParamName" property="strparamname" jdbcType="VARCHAR" />
 <result column="suit" property="suit" jdbcType="VARCHAR" />
</resultMap>

resultMap 使用extends 繼承上級map

<resultMap id="ResultMapWithBLOBs" type="net.transino.model.Systemparam" extends="BaseResultMap" >
 <result column="strParamValue" property="strparamvalue" jdbcType="LONGVARCHAR" />
</resultMap>
<resultMap id="JoinsuitMap" type="net.transino.model.Systemparam" extends="ResultMapWithBLOBs" >
 <association property="suitobj" javaType="Suit">
 <id column="strSuitCode" property="strsuitcode" jdbcType="VARCHAR" />
 <result column="strSuitName" property="strsuitname" jdbcType="VARCHAR" />
 <result column="higerSuit" property="higersuit" jdbcType="VARCHAR" />
 <association property="suit" javaType="Suit">
 <id column="pstrSuitCode" property="strsuitcode" jdbcType="VARCHAR" />
 <result column="pstrSuitName" property="strsuitname" jdbcType="VARCHAR" />
 <result column="phigerSuit" property="higersuit" jdbcType="VARCHAR" />
 </association>
 </association>
</resultMap>

select寫法

<select id="selectJoinSuit" resultMap="JoinsuitMap" parameterType="java.lang.String">
 select
 systempara0_.*,
 suit1_.*,
 suit2_.strSuitCode pstrSuitCode,
 suit2_.strSuitName pstrSuitName,
 suit2_.higerSuit phigerSuit
 from SystemParam systempara0_
 LEFT OUTER JOIN
 Suit suit1_
 ON systempara0_.suit=suit1_.strSuitCode
 LEFT OUTER JOIN
 Suit suit2_
 ON suit1_.higerSuit=suit2_.strSuitCode
 WHERE
 systempara0_.strParamCode=#{strparamcode,jdbcType=VARCHAR}
</select>

補充知識:Mybatis中resultMap標簽實現多表查詢(多個對象)

1 n+1

1 在teacher中添加List student,

public class Teacher {
 private int id;
 private String name;
 private List<Student> list;

2 在studentMapper.xml中添加通過tid查詢

<select id="selByTid" resultType="Student" parameterType="int">
 select * from student where tid=#{0}
</select> 

3 在TeacherMapper.xml中添加查詢全部

<resultMap type="Teacher" id="mymap1"> 
 <id column="id" property="id"/>
 <result column="name" property="name"/>
 <collection property="list" ofType="Student" select="com.bjsxt.mapper.StudentMapper.selByTid" column="id"></collection>
</resultMap> 
<select id="selAll" resultMap="mymap1">
 select * from teacher 
</select> 

其中collection是當屬性為集合類型時使用的標簽

2 多表聯合

<resultMap type="Teacher" id="stumap1">
 <id column="tid" property="id"/>
 <result column="tname" property="name"/>
 <collection property="list" ofType="Student">
 <id column="sid" property="id"/>
 <result column="sname" property="name"/>
 <result column="age" property="age"/>
 <result column="tid" property="tid"/>
 <association property="teacher" select="com.bjsxt.mapper.TeacherMapper.selById" column="tid"></association>
 </collection> 
 </resultMap>
 
 <select id="selAll1" resultMap="stumap1">
 select t.id tid,t.name tname,s.id sid,s.name sname,age,tid from teacher t left join student s on t.id=s.tid 
 </select>

以上這篇mybatis 多表關聯mapper文件寫法操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 一分鐘入門Java Spring Boot徹底解決SSM配置問題

    一分鐘入門Java Spring Boot徹底解決SSM配置問題

    Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發(fā)過程。該框架使用了特定的方式來進行配置,從而使開發(fā)人員不再需要定義樣板化的配置。通過這種方式,Spring Boot致力于在蓬勃發(fā)展的快速應用開發(fā)領域成為領導者
    2021-10-10
  • Java通過Callable實現多線程

    Java通過Callable實現多線程

    這篇文章主要介紹了Java通過Callable實現多線程,Callable的任務執(zhí)行后可返回值,運行Callable任務可以拿到一個Future對象,Future表示異步計算的結果,它提供了檢查計算是否完成的方法,以等待計算的完成,并檢查計算的結果,需要的朋友可以參考下
    2023-10-10
  • Java實現單人信息管理程序

    Java實現單人信息管理程序

    這篇文章主要為大家詳細介紹了Java實現單人信息管理程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • java實現圖片轉ascii字符畫的方法示例

    java實現圖片轉ascii字符畫的方法示例

    這篇文章主要介紹了java實現圖片轉ascii字符畫的方法示例,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • Java中注解@Async實現異步及導致失效原因分析

    Java中注解@Async實現異步及導致失效原因分析

    Async注解用于聲明一個方法是異步的,當在方法上加上這個注解時將會在一個新的線程中執(zhí)行該方法,而不會阻塞原始線程,這篇文章主要給大家介紹了關于Java中注解@Async實現異步及導致失效原因分析的相關資料,需要的朋友可以參考下
    2024-07-07
  • Java中接口和抽象類的區(qū)別與相同之處

    Java中接口和抽象類的區(qū)別與相同之處

    這篇文章主要介紹了Java中接口和抽象類的區(qū)別與相同之處,本文講解了抽象類的概念、接口的概念、接口和抽象類的區(qū)別與聯系等內容,需要的朋友可以參考下
    2015-06-06
  • 基于java編寫局域網多人聊天室

    基于java編寫局域網多人聊天室

    這篇文章主要為大家詳細介紹了基于java編寫局域網多人聊天室的相關資料,使用socket基于java編寫一個局域網聊天室,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • Java實現簡單酒店管理系統

    Java實現簡單酒店管理系統

    這篇文章主要為大家詳細介紹了Java實現簡單酒店管理系統,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Java鎖的升級策略 偏向鎖 輕量級鎖 重量級鎖

    Java鎖的升級策略 偏向鎖 輕量級鎖 重量級鎖

    在本文中小編給的大家整理了關于Java鎖的升級策略 偏向鎖 輕量級鎖 重量級鎖的相關知識點內容,需要的朋友們參考下。
    2019-06-06
  • 基于線程的wait和notify使用,生產消費案例

    基于線程的wait和notify使用,生產消費案例

    這篇文章主要介紹了基于線程的wait和notify使用,生產消費案例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08

最新評論