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

Mybatis查詢Sql結(jié)果未映射到對(duì)應(yīng)得實(shí)體類上的問(wèn)題解決

 更新時(shí)間:2024年02月04日 09:55:02   作者:JYWWABF  
使用mybatis查詢表數(shù)據(jù)得時(shí)候,發(fā)現(xiàn)對(duì)應(yīng)得實(shí)體類字段好多都是null,本文主要介紹了Mybatis查詢Sql結(jié)果未映射到對(duì)應(yīng)得實(shí)體類上的問(wèn)題解決,具有一定的參考價(jià)值,感興趣的可以了解一下

使用mybatis查詢表數(shù)據(jù)得時(shí)候,已經(jīng)確定sql語(yǔ)句沒(méi)問(wèn)題,可以正常查詢出結(jié)果,但是使用實(shí)體類接收的時(shí)候,發(fā)現(xiàn)對(duì)應(yīng)得實(shí)體類字段好多都是null。也就是說(shuō)有些字段沒(méi)有映射到實(shí)體類上

首先,mybatis與實(shí)體類的映射方式,主要是有兩種。不同的映射方式,也對(duì)應(yīng)不同的接收方式

1)resultMap參數(shù)

通過(guò)編寫(xiě)resultMap。如下,將數(shù)據(jù)庫(kù)字段和實(shí)體類字段進(jìn)行映射。其中,column為數(shù)據(jù)庫(kù)字段,property為實(shí)體類字段。

<resultMap id="BaseResultMap" type="com.**.job.model.Product">
    <id column="id" jdbcType="VARCHAR" property="id" />
    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
    <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
    <result column="version" jdbcType="INTEGER" property="version" />
</resultMap>

如果采用這種方式映射,那么查詢時(shí),返回類型就可以用restMap的id進(jìn)行接收。將select標(biāo)簽中的接收參數(shù)設(shè)置為resultMap = "BaseResultMap"。

<select id="findAll" resultMap="BaseResultMap">
    select <include refid="Base_Column_List" />
    from product_tab
  </select>

如果此時(shí)你使用resultType屬性接受,有可能就會(huì)造成某些實(shí)體類字段接收不到值,顯示為null

2)resultType參數(shù)

如果不想編寫(xiě)resultMap,我們也可以使用select 標(biāo)簽中的resultType進(jìn)行接收。

此時(shí)resultType 指向具體的實(shí)體類。

<select id="selectByDto" resultType="com.**.job.model.Product">

但是這種需要滿足下面兩個(gè)條件之一:

  • 表中的字段要么和實(shí)體類字段一致。
  • 如果表中字段帶下劃線,實(shí)體類中對(duì)應(yīng)的字段不想帶下劃線,就要滿足下劃線轉(zhuǎn)駝峰的方式,例如,表中字段product_url,實(shí)體類中的字段,要寫(xiě)成productUrl。

如果以上兩個(gè)條件都滿足,還是出現(xiàn)某些實(shí)體類字段為null。就去檢查一下是否設(shè)置了mybatis的mapUnderscoreToCamelCase參數(shù)。該參數(shù)默認(rèn)為false。

將這個(gè)屬性設(shè)置為true。 可以自動(dòng)將以下畫(huà)線方式命名的數(shù)據(jù)庫(kù)列映射到 Java 對(duì)象的駝峰式命名屬性中。

設(shè)置方式如下:

總結(jié)如下:

1)如果你寫(xiě)了resultMap 的xml映射,那么select標(biāo)簽的屬性選擇resultMap。

2)如果你沒(méi)寫(xiě)resultMap 的xml映射,那也沒(méi)事。mybatis會(huì)自動(dòng)幫你映射。但是你的select標(biāo)簽的屬性要resultType,用于指向具體的實(shí)體類。但同時(shí),你要滿足上面兩點(diǎn)條件。同時(shí)確保mapUnderscoreToCamelCase參數(shù)為true

建議編寫(xiě)resultMap,只要映射沒(méi)錯(cuò),基本上不會(huì)出現(xiàn)為null的情況,實(shí)體類的字段可以隨便寫(xiě)。

當(dāng)然如果你庫(kù)表中的字段很多的話,可以使用mybatis-generator生成工具,直接生成resultMap的xml

到此這篇關(guān)于Mybatis查詢Sql結(jié)果未映射到對(duì)應(yīng)得實(shí)體類上的問(wèn)題解決的文章就介紹到這了,更多相關(guān)Mybatis查詢Sql結(jié)果未映射內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

河源市| 桂林市| 油尖旺区| 霍城县| 桐乡市| 平远县| 宜宾市| 睢宁县| 娱乐| 黄平县| 嘉黎县| 措美县| 乌海市| 改则县| 鸡东县| 策勒县| 吉林市| 武夷山市| 朝阳区| 应用必备| 紫金县| 沽源县| 磐安县| 封开县| 凤庆县| 萨嘎县| 郧西县| 奈曼旗| 临潭县| 宣武区| 洪雅县| 巴林右旗| 石屏县| 都昌县| 汾西县| 利川市| 建阳市| 昌平区| 金山区| 新宾| 天峨县|