标签:parameter list 假设 现在 key 一对一 例子 public auth

public class Book {
private long id;
private String name;
private int price;
private Author author;
//... getter and setter
}public class Book { private long id; private String name; private int price; private Author author; //... getter and setter}public class Author {
private long id;
private String name;
private int age;
private List<Book> bookList;
//... getter and setter
}public class Author { private long id; private String name; private int age; private List<Book> bookList; //... getter and setter}<mapper namespace="dulk.learn.mybatis.dao.BookDao">
<resultMap id="bookResultMap" type="dulk.learn.mybatis.pojo.Book">
<id property="id" column="id" />
<result property="name" column="name" />
<result property="price" column="price" />
<!--关联属性-->
<association property="author" javaType="dulk.learn.mybatis.pojo.Author">
<!--注:此处column应为book中外键列名-->
<id property="id" column="author_id" />
<!--注:避免属性重名,否则属性值注入错误-->
<result property="name" column="authorName" />
<result property="age" column="authorAge" />
</association>
</resultMap>
<!--嵌套查询,结果映射只能使用resultMap-->
<select id="findBookById" parameterType="long" resultMap="bookResultMap">
SELECT
b.*,
a.name AS ‘authorName‘,
a.age AS ‘authorAge‘
FROM book b, author a
WHERE b.author_id = a.id
AND b.id = #{id}
</select>
</mapper><mapper namespace="dulk.learn.mybatis.dao.BookDao"> <resultMap id="bookResultMap" type="dulk.learn.mybatis.pojo.Book"> <id property="id" column="id" /> <result property="name" column="name" /> <result property="price" column="price" /> <!--关联属性--> <association property="author" javaType="dulk.learn.mybatis.pojo.Author"> <!--注:此处column应为book中外键列名--> <id property="id" column="author_id" /> <!--注:避免属性重名,否则属性值注入错误--> <result property="name" column="authorName" /> <result property="age" column="authorAge" /> </association> </resultMap> <!--嵌套查询,结果映射只能使用resultMap--> <select id="findBookById" parameterType="long" resultMap="bookResultMap"> SELECT b.*, a.name AS ‘authorName‘, a.age AS ‘authorAge‘ FROM book b, author a WHERE b.author_id = a.id AND b.id = #{id} </select> </mapper><mapper namespace="dulk.learn.mybatis.dao.BookDao">
<!--author的resultMap-->
<resultMap id="authorResultMap" type="dulk.learn.mybatis.pojo.Author">
<id property="id" column="authorId"/>
<result property="name" column="authorName"/>
<result property="age" column="authorAge"/>
</resultMap>
<resultMap id="bookResultMap" type="dulk.learn.mybatis.pojo.Book">
<id property="id" column="id"/>
<result property="name" column="name"/>
<result property="price" column="price"/>
<!--引用author的resultMap-->
<association property="author" resultMap="authorResultMap" />
</resultMap>
<!--注意这里a.id的别名和authorResultMap中相对应-->
<select id="findBookById" parameterType="long" resultMap="bookResultMap">
SELECT
b.*,
a.id AS ‘authorId‘,
a.name AS ‘authorName‘,
a.age AS ‘authorAge‘
FROM book b, author a
WHERE b.author_id = a.id
AND b.id = #{id}
</select>
</mapper><mapper namespace="dulk.learn.mybatis.dao.BookDao"> <!--author的resultMap--> <resultMap id="authorResultMap" type="dulk.learn.mybatis.pojo.Author"> <id property="id" column="authorId"/> <result property="name" column="authorName"/> <result property="age" column="authorAge"/> </resultMap> <resultMap id="bookResultMap" type="dulk.learn.mybatis.pojo.Book"> <id property="id" column="id"/> <result property="name" column="name"/> <result property="price" column="price"/> <!--引用author的resultMap--> <association property="author" resultMap="authorResultMap" /> </resultMap> <!--注意这里a.id的别名和authorResultMap中相对应--> <select id="findBookById" parameterType="long" resultMap="bookResultMap"> SELECT b.*, a.id AS ‘authorId‘, a.name AS ‘authorName‘, a.age AS ‘authorAge‘ FROM book b, author a WHERE b.author_id = a.id AND b.id = #{id} </select></mapper><mapper namespace="dulk.learn.mybatis.dao.BookDao">
<resultMap id="bookResultMap" type="dulk.learn.mybatis.pojo.Book">
<id property="id" column="id"/>
<result property="name" column="name"/>
<result property="price" column="price"/>
<!--使用select属性进行查询关联-->
<association property="author" column="author_id" javaType="dulk.learn.mybatis.pojo.Author" select="findAuthorById"/>
</resultMap>
<!--简化了book的查询语句,不再需要与其他表关联-->
<select id="findBookById" parameterType="long" resultMap="bookResultMap">
SELECT b.*
FROM book b
WHERE b.id = #{id}
</select>
<!--新增了author表的查询语句,将会被调用获取结果并组装给book-->
<select id="findAuthorById" parameterType="long" resultType="dulk.learn.mybatis.pojo.Author">
SELECT *
FROM author
WHERE id = #{id}
</select>
</mapper><mapper namespace="dulk.learn.mybatis.dao.BookDao"> <resultMap id="bookResultMap" type="dulk.learn.mybatis.pojo.Book"> <id property="id" column="id"/> <result property="name" column="name"/> <result property="price" column="price"/> <!--使用select属性进行查询关联--> <association property="author" column="author_id" javaType="dulk.learn.mybatis.pojo.Author" select="findAuthorById"/> </resultMap> <!--简化了book的查询语句,不再需要与其他表关联--> <select id="findBookById" parameterType="long" resultMap="bookResultMap"> SELECT b.* FROM book b WHERE b.id = #{id} </select> <!--新增了author表的查询语句,将会被调用获取结果并组装给book--> <select id="findAuthorById" parameterType="long" resultType="dulk.learn.mybatis.pojo.Author"> SELECT * FROM author WHERE id = #{id} </select></mapper><mapper namespace="dulk.learn.mybatis.dao.AuthorDao">
<resultMap id="authorResultMap" type="dulk.learn.mybatis.pojo.Author">
<id property="id" column="id"/>
<result property="name" column="name" />
<result property="age" column="age" />
<!--使用collection属性,ofType为集合内元素的类型-->
<collection property="bookList" ofType="dulk.learn.mybatis.pojo.Book" columnPrefix="book_">
<id property="id" column="id"/>
<result property="name" column="name" />
<result property="price" column="price" />
</collection>
</resultMap>
<select id="findById" parameterType="long" resultMap="authorResultMap">
SELECT a.*, b.id AS ‘book_id‘, b.name AS ‘book_name‘, b.price AS ‘book_price‘
FROM author a, book b
WHERE a.id = b.author_id
AND a.id = #{authorId}
</select>
</mapper><mapper namespace="dulk.learn.mybatis.dao.AuthorDao"> <resultMap id="authorResultMap" type="dulk.learn.mybatis.pojo.Author"> <id property="id" column="id"/> <result property="name" column="name" /> <result property="age" column="age" /> <!--使用collection属性,ofType为集合内元素的类型--> <collection property="bookList" ofType="dulk.learn.mybatis.pojo.Book" columnPrefix="book_"> <id property="id" column="id"/> <result property="name" column="name" /> <result property="price" column="price" /> </collection> </resultMap> <select id="findById" parameterType="long" resultMap="authorResultMap"> SELECT a.*, b.id AS ‘book_id‘, b.name AS ‘book_name‘, b.price AS ‘book_price‘ FROM author a, book b WHERE a.id = b.author_id AND a.id = #{authorId} </select></mapper>[04] 高级映射 association和collection
标签:parameter list 假设 现在 key 一对一 例子 public auth
原文地址:https://www.cnblogs.com/deng-cc/p/9337601.html