resultmap和resulttype的區別和使用情景,ParameterMap(不推薦) & parameterType
阿新 • • 發佈:2019-02-15
自定義resultmap
<resultMap id="myMapJiLian" type="com.yunqing.mybatis.bean.User"> <id column="id" property="id"/> <result column="name" property="name"/> <result column="age" property="age"/> <result column="did" property="dep.id"/> <result column="dep_name" property="dep.departmentName"/> </resultMap>
使用
<select id="getUserAndDepById" resultMap="myMapJiLian">
SELECT u.id id,u.name name,u.age age,u.dep_id dep_id,dep.id did,dep.department dep_name FROM t_user u,t_dep dep WHERE
u.dep_id=dep.id AND u.id=#{id}
</select>
resultMap & resultType
兩者都是表示查詢結果集與java物件之間的一種關係,處理查詢結果集,對映到java物件。
resultMap表示將查詢結果集中的列一一對映到bean物件的各個屬性。對映的查詢結果集中的列標籤可以根據需要靈活變化(即表中欄位名可以與bean中的屬性名不一致),並且,在對映關係中,還可以通過typeHandler設定實現查詢結果值的型別轉換,比如布林型與0/1的型別轉換。
resultType 表示的是bean中的物件類,此時可以省略掉resultMap標籤的對映,但是必須保證查詢結果集中的屬性 和 bean物件類中的屬性是一一對應的,此時大小寫不敏感,但是有限制。
ParameterMap(不推薦) & parameterType
ParameterMap 和resultMap類似,表示將查詢結果集中列值的型別一一對映到java物件屬性的型別上,在開發過程中不推薦這種方式。
一般使用parameterType直接將查詢結果列值型別自動對應到java物件屬性型別上,不再配置對映關係一一對應,例如上述程式碼中下劃線部分表示將查詢結果型別自動對應到hdu.terence.bean.Message的Bean物件屬性型別。