解決問題:數據庫表里面很多字段不太需要,有時只想取到里面的部分字段的值,如果重新定義 DTO 會比較麻煩。 BookMapper.xml 文件中定義如下: ` <!-- Book全部字段 -->
<resultMap id="BaseResultMap" type="com.lgsc.cjbd.book.model.Book">
<id column="bookid" property="bookId" jdbcType="BIGINT" />
<result column="bookname" property="bookName" jdbcType="VARCHAR" />
<result column="press" property="press" jdbcType="VARCHAR" />
<result column="author" property="author" jdbcType="VARCHAR" />
<result column="translator" property="translator" jdbcType="VARCHAR" />
<result column="isbn" property="isbn" jdbcType="CHAR" />
</resultMap>
<!-- 定義resultMap,type為HashMap -->
<resultMap id="PartBookMap" type="java.util.HashMap">
<id column="book_id" property="bookId" jdbcType="BIGINT" />
<result column="book_name" property="bookName" jdbcType="VARCHAR" />
<result column="author" property="author" jdbcType="VARCHAR" />
</resultMap>
<!-- 查詢語句 -->
<select id="selectPartBook" resultMap="PartBookMap">
select book_id, book_name, author from book
</select>
BookMapper.java 文件中定義如下:
List<Map<String, Object>> selectPartBook();
1
BookService.java 用 List< Map< String, Object > > 來接收
List<Map<String, Object>> map = bookMapper.selectPartBook();
下面博客使用的方法需要傳入id值,所以不適用。
MyBatis使用@MapKey注解接收多個查詢記錄到Map中,以便方便地用get()方法獲取字段的值
