Mybatis查询部分字段

解决问题:数据库表里面很多字段不太需要,有时只想取到里面的部分字段的值,如果重新定义 DTO 会比较麻烦。

BookMapper.xml 文件中定义如下:

<!-- Book全部字段 -->
<resultMap id="BaseResultMap" type="com.lgsc.cjbd.book.model.Book">
    <id column="book_id" property="bookId" jdbcType="BIGINT" />
    <result column="book_name" 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();

BookService.java 用 List< Map< String, Object > > 来接收

List<Map<String, Object>> map = bookMapper.selectPartBook();

下面博客使用的方法需要传入id值,所以不适用。
MyBatis使用@MapKey注解接收多个查询记录到Map中,以便方便地用get()方法获取字段的值

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值