譬如本来的类是
class Book{
int id;
int price;
String name;
String place;
}
现在只需要返回两个字段,price和name
难道需要临时建立一个类
class BookPart{
int price;
String name;
}
当然,如果字段很少的话,直接返回Book就行了,
但是如果字段很多,那就只需要返回需要的那部分,怎么办?
譬如本来的类是
class Book{
int id;
int price;
String name;
String place;
}
现在只需要返回两个字段,price和name
难道需要临时建立一个类
class BookPart{
int price;
String name;
}
当然,如果字段很少的话,直接返回Book就行了,
但是如果字段很多,那就只需要返回需要的那部分,怎么办?
可以定义resultMap 标签来接收。
如: 要取 price , name字段。
定义一个 resultMap 来实现,如下:
<resultMap id="BaseResultMap" type="com.xx.BookPart" >
<result column="price " property="price " />
<result column="name" property="name" />
</resultMap>
<select id="getNameAndPrice" resultMap="BaseResultMap" parameterType="java.lang.String">
select price,name from Bookpart
</select>
以上,即可实现取部分字段。
有三种方法。
<select id = "get">
select proce, name from bookpart
</select>
1.直接返回map
2.定义resultMap 新建一个类。
3.直接返回该对象。 只映射两个字段,其他自动为null
这个涉及到领域建模了:VO,DO,DTO等等,建议看看这个
PO BO VO DTO POJO DAO DO这些Java中的概念分别指一些什么? - 知乎 https://www.zhihu.com/questio...
然后根据你的业务情况 评价是否需要细分
8 回答6.6k 阅读
4 回答715 阅读✓ 已解决
2 回答3.4k 阅读
5 回答1.5k 阅读
3 回答1.9k 阅读✓ 已解决
1 回答2.2k 阅读✓ 已解决
2 回答2.2k 阅读
估计你Mapper.xml里面对于查询结果用了resultMap导致单独查询某些字段会报错找不到其他字段吧。
你可以把Mapper.xml里面的select对应的resultMap改为resultType直接对应你的接收类
再单独查询两个字段试试。