亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

MyBatis中怎么進行多對多關聯查詢

小億
82
2024-04-09 09:45:53
欄目: 編程語言

在MyBatis中進行多對多關聯查詢可以通過使用<collection><association>標簽來實現。

假設有兩個實體類AuthorBook,它們之間是多對多的關系,一個作者可以寫多本書,一本書也可以由多個作者共同寫作。首先需要在AuthorBook的Mapper文件中配置關聯查詢的SQL語句:

<!-- AuthorMapper.xml -->
<select id="getAuthorById" resultType="Author" parameterType="int">
    SELECT * FROM author WHERE id = #{id}
</select>

<select id="getBooksByAuthorId" resultType="Book" parameterType="int">
    SELECT b.* FROM book b
    JOIN author_book ab ON b.id = ab.book_id
    WHERE ab.author_id = #{authorId}
</select>

<!-- BookMapper.xml -->
<select id="getBookById" resultType="Book" parameterType="int">
    SELECT * FROM book WHERE id = #{id}
</select>

<select id="getAuthorsByBookId" resultType="Author" parameterType="int">
    SELECT a.* FROM author a
    JOIN author_book ab ON a.id = ab.author_id
    WHERE ab.book_id = #{bookId}
</select>

然后在Author和Book實體類中定義關聯的屬性:

public class Author {
    private Integer id;
    private String name;
    private List<Book> books;
    
    // 省略getter和setter方法
}

public class Book {
    private Integer id;
    private String title;
    private List<Author> authors;
    
    // 省略getter和setter方法
}

最后在MyBatis配置文件中配置關聯查詢的映射:

<!-- AuthorMapper.xml -->
<resultMap id="AuthorResultMap" type="Author">
    <id property="id" column="id" />
    <result property="name" column="name" />
    <collection property="books" ofType="Book" resultMap="BookResultMap" />
</resultMap>

<!-- BookMapper.xml -->
<resultMap id="BookResultMap" type="Book">
    <id property="id" column="id" />
    <result property="title" column="title" />
    <collection property="authors" ofType="Author" resultMap="AuthorResultMap" />
</resultMap>

通過以上配置,就可以在AuthorMapper和BookMapper中查詢到多對多關聯的數據,并且在返回結果中包含關聯的實體對象列表。

0
遂溪县| 东乡县| 秦安县| 祁连县| 福贡县| 台北县| 芦溪县| 株洲市| 厦门市| 和政县| 绍兴县| 城固县| 崇仁县| 当阳市| 克拉玛依市| 阿鲁科尔沁旗| 阳原县| 霍山县| 宜章县| 准格尔旗| 沙坪坝区| 泾阳县| 定州市| 辽中县| 南平市| 金坛市| 望奎县| 仁布县| 巫溪县| 阜宁县| 赞皇县| 中方县| 德州市| 青冈县| 阿瓦提县| 石嘴山市| 康乐县| 乐昌市| 滦平县| 雷州市| 嘉黎县|