selectByExample和selectByExampleWithBLOBs的區別
阿新 • • 發佈:2018-12-06
我們先來看一段MyBatis逆向工程生成的程式碼。
<select id="selectByExample" parameterType="cn.e3mall.pojo.TbItemDescExample" resultMap="BaseResultMap">
<select id="selectByExampleWithBLOBs" parameterType="cn.e3mall.pojo.TbItemDescExample" resultMap="ResultMapWithBLOBs">
經過檢視,我們可以發現,resultMap不同。
接下來我們在看resultMap的內容。
selectByExample的resultMap:
<resultMap id="BaseResultMap" type="cn.e3mall.pojo.TbItemDesc"> <id column="item_id" jdbcType="BIGINT" property="itemId" /> <result column="created" jdbcType="TIMESTAMP" property="created" /> <result column="updated" jdbcType="TIMESTAMP" property="updated" /> </resultMap>
selectByExampleWithBLOBs的resultMap:
<resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="cn.e3mall.pojo.TbItemDesc">
<result column="item_desc" jdbcType="LONGVARCHAR" property="itemDesc" />
</resultMap>
對比之後我們可以看出selectByExampleWithBLOBs的返回值ResultMapWithBLOBs是繼承自selectByExample的返回值BaseResultMap,他擁有BaseResultMap的全部屬性。
總結:
1、兩個方法的返回的resultMap 不同
selectByExample 方法返回:BaseResultMap。
selectByExampleWithBLOBs 方法返回:ResultMapWithBLOBs。
ResultMapWithBLOBs 定義時,繼承了BaseResultMap,並且自己特殊的欄位,該欄位通常是longvarchar型別。
2、使用場景不同
若檢索大欄位時,則需要使用selectByExampleWithBLOBs ,一般情況則使用selectByExample 即可。