日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

mybatis 一对一与一对多collection和association的使用

發(fā)布時間:2024/8/26 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mybatis 一对一与一对多collection和association的使用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在mybatis如何進行一對一、一對多的多表查詢呢?這里用一個簡單的例子說明。

一、一對一

1、association

? ? association通常用來映射一對一的關系,例如,有個類user,對應的實體類如下:(getter,setter方法省略)

private String id;//主鍵private String userName;//用戶姓名

?

有個類Article,對應的實體類如下:

private String id;//主鍵private String articleTitle;//文章標題private String articleContent;//文章內容

如果我想查詢一個用戶的時候,也查到他寫的一篇文章,可以怎樣寫呢?在類user加入一個屬性article

private String id;//主鍵private String userName;//用戶姓名
private Article article;//新增的文章屬性
?

2、mapper.xml 我在user類的mapper.xml這樣配置

? ??

<resultMap id="userResultMap" type="test.mybatis.entity.User"><id column="id" property="id" jdbcType="VARCHAR" javaType="java.lang.String"/><result column="userName" property="userName" jdbcType="VARCHAR" javaType="java.lang.String"/>
//這里把user的id傳過去<association property="article" column="id" select="test.mybatis.dao.articleMapper.selectArticleByUserId" />//test.mybatis.dao.articleMapper為命名空間</resultMap>

同時,我的article對應的xml這樣寫:

1 <resultMap id="articleResultMap" type="test.mybatis.entity.Article"> 2 <id column="id" property="id" jdbcType="VARCHAR" javaType="java.lang.String"/> 3 <result column="articleTitle" property="articleTitle" jdbcType="VARCHAR" javaType="java.lang.String"/> 4 <result column="articleContent" property="articleContent" jdbcType="VARCHAR" javaType="java.lang.String"/> 5 </resultMap>
(當然,這里還有查詢user表的語句,省略)

?

同時,在article對應的xml有這樣的select語句:

<select id="selectArticleByUserId" parameterType="java.lang.String" resultMap="ArticleResultMap" > select * from tb_article where userId=#{userId} </select>

二、一對多,collection,理解了一對一,一對多容易理解。

實體類增加對應屬性

private String id;//主鍵private String userName;//用戶姓名private List<Article> articleList;

userMapper.xml這樣配置

<resultMap id="userResultMap" type="test.mybatis.entity.User"><id column="id" property="id" jdbcType="VARCHAR" javaType="java.lang.String"/><result column="userName" property="userName" jdbcType="VARCHAR" javaType="java.lang.String"/> //這里把user的id傳過去<collection property="articleList" column="id" select="test.mybatis.dao.articleMapper.selectArticleListByUserId" /></resultMap>
以下省略,類同,Mybatis會把結果封裝成List類型。

三、如果我還想通過Article表另一張表,比如文章中有個fk_id,也可以像上面這樣重復配置,把fk_id當做與另一張表關聯(lián)的參數(shù),那時就可以通過用戶查到文章,查到文章關聯(lián)的另一張表了。

?

轉載于:https://www.cnblogs.com/yansum/p/5819973.html

總結

以上是生活随笔為你收集整理的mybatis 一对一与一对多collection和association的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。