Mybatis 基礎xml對映
第一個簡單的查詢過程
這個介紹 ID result的區別
https://www.cnblogs.com/hamhog/p/3959451.html
<result column="資料庫欄位名" property="實體類屬性" jdbcType="資料庫欄位型別" />
public class company {
private int id;
private String name;
private int addre;
private Addre addrep;
public class Addre {
private int id;
private String place;
private List<company> company;
結果:
<resultMap id="assocResult" type="testdo.company">
<result column="r_id" property="addrep.id"/>
<result column="r_name" property="addrep.place"/>
</resultMap>
<select id="selectDepartWithRegion" resultMap="assocResult">
select d.id,d.name,r.id r_id,r.name r_name
from s_dept d,s_region r
where d.region_id = r.id
</select>
使用有參構造器來呼叫語句:
<constructor>
<idArg column="id" javaType="_int"/>
<arg column="name" javaType="string"/>
</constructor>
association是用於一對一和多對一,而collection是用於一對多的關係
第一種 Association
<resultMap id="assocResult" type="testdo.company" >
<result column="id" property="id"/>
<result column="name" property="name"/>
<association property="addrep" javaType="testdo.Addre">
<id column="r_id" property="id"/>
<result property="place" column="r_name"/>
</association>
</resultMap>
在association裡可以用構造器來代替ID和result
<association property="addrep" javaType="testdo.Addre">
<constructor>
<idArg column="r_id" javaType="_int"/>
<arg column="r_name" javaType="string"/>
</constructor>
<!-- <id column="r_id" property="id"/>
<result property="place" column="r_name"/>-->
</association>
兩者效果一樣
也可以在建一個resultMap
<resultMap type="testdo.Addre" id="regionMap">
<id column="id" property="id"/>
<result column="name" property="place"/>
</resultMap>
然後在原來的resultMap里加
<association property="addrep" resultMap="regionMap"/>
也可以達到同樣的效果
更簡單一種方法:
類似封裝公共的部分 然後呼叫它:
這是公共的部分
<resultMap type="testdo.Addre" id="regionMap">
<id column="id" property="id"/>
<result column="name" property="place"/>
</resultMap>
通過兩個表查詢查詢一個部門的資訊及部門對於地區的資訊:
association是用來處理多對一或一對一關係的,使用可以在這個地方使用 ,由於要以company型別輸出,所以介面裡應該以
List<company> 形式返回 ,這是內嵌select方式
<resultMap type="testdo.Addre" id="regionMap">
<id column="id" property="id"/>
<result column="name" property="place"/>
</resultMap>
<resultMap type="testdo.company" id="assocSelect">
<!-- id,name屬性值和列名一致,可以自動對映 -->
<id property="id" column="id"/>
<result column="name" property="name"/>
<association property="addrep" column="region_id"
select="selectRegionById">
</association>
</resultMap>
<select id="selectDepart" resultMap="assocSelect">
select id,name,region_id
from s_dept
</select>
<select id="selectRegionById" resultMap="regionMap">
select id ,name
from s_region
where id = #{id}
</select>
Collection一對多的查詢:
<select id="selectRegionWithDeparts" resultMap="regionMap">
select r.id,r.name,d.id d_id,d.name d_name
from s_region r,s_dept d
where r.id = d.region_id(+)
</select>
<resultMap id="assocResultc" type="testdo.company">
<id column="id" property="id"/>
<result property="name" column="name"/>
</resultMap>
<resultMap id="regionMap" type="testdo.Addre">
<id column="id" property="id"/>
<result property="place" column="name"/>
<collection property="company" resultMap="assocResultc" columnPrefix="d_"/>
</resultMap>
一對多的兩表查詢:
<resultMap id="collSelect" type="testdo.Addre">
<id column="id" property="id"/>
<result property="place" column="name"/>
<collection property="company" column="id"
select="selectDepartByRegionId" />
</resultMap>
<select id="selectDepartByRegionId" resultMap="assocResultc">
select id,name
from s_dept
where region_id = #{id}
</select>
<select id="selectRegion" resultMap="collSelect">
select id,name
from s_region
</select>
多對多和一對多是一樣的
相關文章
- mybatis入門基礎(四)----輸入對映和輸出對映MyBatis
- 【mybatis xml】資料層框架應用--Mybatis 基於XML對映檔案實現資料的CRUDMyBatisXML框架
- Mybatis基礎:Mybatis對映配置檔案,Mybatis核心配置檔案,Mybatis傳統方式開發MyBatis
- mybatis入門基礎(六)----高階對映(一對一,一對多,多對多)MyBatis
- ElasticSearch - 基礎概念和對映Elasticsearch
- java-Mybatis XML 對映器(select,insert, update 和 delete)JavaMyBatisXMLdelete
- Mybatis結果對映MyBatis
- 最全MyBatis中XML對映檔案(Mapper)標籤分析及示例MyBatisXMLAPP
- MyBatis3:SQL對映MyBatisS3SQL
- MyBatis從入門到精通(九):MyBatis高階結果對映之一對一對映MyBatis
- MyBatis從入門到精通(十一):MyBatis高階結果對映之一對多對映MyBatis
- Mybatis實體關聯對映MyBatis
- mybatis關聯關係對映MyBatis
- Mybatis對映檔案簡介MyBatis
- MyBatis 結果對映總結MyBatis
- mybatis高階結果對映MyBatis
- Mybatis 輸出對映-- resultType resultMapMyBatis
- Mybatis學習筆記(5)-高階對映之多對多對映MyBatis筆記
- MyBatis(四) 對映器配置(自動對映、resultMap手動對映、引數傳遞)MyBatis
- Go 語言基礎 陣列、切片、對映Go陣列
- Erlang基礎資料結構.對映組資料結構
- Mybatis學習筆記(4)-高階對映之一對多對映MyBatis筆記
- Mybatis學習筆記(3)—高階對映之一對一對映MyBatis筆記
- XML基礎XML
- MyBatis實現一對一關聯對映MyBatis
- Mybatis 學習筆記(一)——配置檔案SqlMapConfig.xml和對映檔案Mapper.xmlMyBatis筆記SQLXMLAPP
- Mybatis處理列名—欄位名對映— 駝峰式命名對映MyBatis
- 精盡MyBatis原始碼分析 - MyBatis初始化(二)之載入 Mapper 介面與 XML 對映檔案MyBatis原始碼APPXML
- 基於JDBC寫一個和mybatis類似的對映框架—DBUtilsJDBCMyBatis框架
- 【Docker】Docker基礎-埠對映與容器互聯Docker
- mybatis原始碼配置檔案解析之五:解析mappers標籤(解析XML對映檔案)MyBatis原始碼APPXML
- 使用JAXP對xml文件進行DOM解析基礎XML
- mybatis----基礎MyBatis
- MyBatis基礎:MyBatis快取(5)MyBatis快取
- MyBatis基礎:MyBatis入門(1)MyBatis
- 【Mybatis系列】從原始碼角度理解Mybatis欄位對映-AS&ResultMapMyBatis原始碼
- day07-MyBatis的關聯對映01MyBatis
- MyBatis框架之SQL對映和動態SQLMyBatis框架SQL