您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“Mybatis的@ResultMap,@Results,@Result注解怎么使用”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Mybatis的@ResultMap,@Results,@Result注解怎么使用”吧!
在使用mybatis時(shí)發(fā)現(xiàn),mybatis能自動(dòng)匹配實(shí)體名和數(shù)據(jù)庫(kù)字段名相同的字段。當(dāng)有實(shí)體名與數(shù)據(jù)庫(kù)的字段名不同時(shí)該如何解決??
數(shù)據(jù)庫(kù)的表對(duì)應(yīng)的列名:
springboot項(xiàng)目中建的實(shí)體類為:
public class MapModel { private Long key; private String value; //省略getter、setter方法 }
給查詢字段另起名對(duì)應(yīng)實(shí)體類的名稱:
@Select("SELECT province_id as key , province_name as value FROM `j_position`") public List<MapModel> provinceName();
使用@Results、@Result、@ResultMap注解:
@Select("SELECT province_id, province_name FROM `j_position`") @Results(id="resultMap1" ,value = { @Result(property = "key",column = "province_id"), @Result(property = "value",column ="province_name") }) public List<MapModel> provinceName();
其中定義的id="resultMap1"可以使用
@ResultMap("resultMap1) @Select("SELECT province_id, province_name FROM `j_position` where province_name=#{name}") public List<MapModel> provinceName(String name);
推薦使用方法二!
有一部分建立在我上一個(gè)博客,mybatis注釋使用(單表查詢),如果那里看不懂了,建議看下我上一個(gè)博客(里面所有的配置文件,接口,數(shù)據(jù)庫(kù)的創(chuàng)建都有說(shuō)明)
<resultMap>對(duì)應(yīng)的注解:
代替的是標(biāo)簽<resultMap >
該注解中可以使用單個(gè)@Result注解,也可以使用@Result集合
@Results({@Result(),@Result()})或@Results(@Result())
注意:使用注解是若報(bào)出org.apache.ibatis.binding.BindingException:Invalid bound statement (not found):接口全類名.方法名
可能是使用@Results注解時(shí)忘記使用@Select注解
代替了 <id>標(biāo)簽和<result>標(biāo)簽
@Result 中 屬性介紹:
column
數(shù)據(jù)庫(kù)的列名
Property
需要裝配的屬性名
one
需要使用的@One注解(@Result(one=@One)()))
many
需要使用的@Many注解(@Result(many=@many)()))
代替了<assocation>標(biāo)簽,是多表查詢的關(guān)鍵,在注解中用來(lái)指定子查詢返回單一對(duì)象。
@One注解屬性介紹:
select
指定用來(lái)多表查詢的sqlmapper
fetchType
會(huì)覆蓋全局的配置參數(shù)lazyLoadingEnabled。。
使用格式:
@Result(column=" ",property="",one=@One(select=""))
代替了<Collection>標(biāo)簽,是是多表查詢的關(guān)鍵,在注解中用來(lái)指定子查詢返回對(duì)象集合。
注意:聚集元素用來(lái)處理“一對(duì)多”的關(guān)系。需要指定映射的Java實(shí)體類的屬性,屬性的javaType(一般為ArrayList)但是注解中可以不定義;
使用格式:
@Result(property="",column="",many=@Many(select=""))
到此,相信大家對(duì)“Mybatis的@ResultMap,@Results,@Result注解怎么使用”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。