mybatis映射
<!--
mybatis對于處理簡單的單表查詢一般使用resultType就可以解決
對于多表聯(lián)合查詢都需要使用resultMap進(jìn)行詳細(xì)的描述
告訴mybatis怎么封裝琉闪,自己定義規(guī)則
-->
<!--封裝方式1 官方推薦-->
<resultMap id="userWithDetailMap" type="com.text.pojo.UserWithDetail">
<!--先封裝User對象-->
<!--設(shè)置主鍵-->
<!--property對應(yīng)java的屬性名颠毙,column對應(yīng)數(shù)據(jù)庫查詢出來的列名-->
<id property="uId" column="u_id"></id>
<result property="phone" column="phone"/>
<result property="createDate" column="create_date"/>
<result property="status" column="status"/>
<result property="password" column="password"/>
<!--封裝對象屬性-->
<association property="userDetail" javaType="com.text.pojo.UserDetail">
<id property="id" column="ud_id"/>
<result property="address" column="address"/>
<result property="cid" column="cid"/>
</association>
</resultMap>
<!--封裝方式2-->
<resultMap id="userWithDetailMap2" type="com.text.pojo.UserWithDetail">
<!--先封裝User對象-->
<!--設(shè)置主鍵-->
<id property="uId" column="u_id"></id>
<result property="phone" column="phone"/>
<result property="createDate" column="create_date"/>
<result property="status" column="status"/>
<result property="password" column="password"/>
<!--封裝對象屬性-->
<result property="userDetail.id" column="ud_id"/>
<result property="userDetail.address" column="address"/>
<result property="userDetail.cid" column="cid"/>
</resultMap>
<resultMap id="userBaseMap" type="com.text.pojo.UserWithDetail">
<!--先封裝User對象-->
<!--設(shè)置主鍵-->
<id property="uId" column="u_id"></id>
<result property="phone" column="phone"/>
<result property="createDate" column="create_date"/>
<result property="status" column="status"/>
<result property="password" column="password"/>
</resultMap>
<!--
封裝方式3
如果有的查詢太復(fù)雜了,推薦使用分步查詢
-->
<resultMap id="userWithDetailMap3" extends="userBaseMap" type="com.text.pojo.UserWithDetail">
<!--封裝對象屬性-->
<association property="userDetail" select="com.text.mapper.UserDetailMapper.queryByUserId" column="u_id">
</association>
</resultMap>
<select id="queryByUserId" resultType="com.text.pojo.UserDetail">
select * from user_detail
where u_id = #{id}
</select>
一般使用association進(jìn)行類的查詢
如果結(jié)構(gòu)過于復(fù)雜滴某,使用分布查詢
pojo內(nèi)嵌list
<resultMap id="userWithBlog" extends="userBaseMap" type="com.text.pojo.UserBlog">
<!--封裝博客-->
<!--ofType是描述集合當(dāng)中元素的數(shù)據(jù)類型-->
<collection property="blog" ofType="com.text.pojo.Blog">
<id property="id" column="b_id"></id>
<result property="title" column="title"/>
<result property="summary" column="summary"/>
<result property="content" column="blog_content"/>
<!--博客里面還有評論-->
<collection property="comment" ofType="com.text.pojo.Comment">
<id property="id" column="cid"/>
<result property="content" column="comment_content"/>
</collection>
</collection>
</resultMap>
使用collection標(biāo)簽進(jìn)行封裝
在pojo內(nèi)注意用list<E>封裝一對多的關(guān)系