mybatis如何查询返回部分字段?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis如何查询返回部分字段?相关的知识,希望对你有一定的参考价值。

pojo的工具类有四个属性,也就是数据库的表有四列,数据库中指定查询其中二列,在mybatis代码怎么写?

理论上的实现是:可以自定义一个resultMap,然后这个resultMap指向一个自定义的pojo(只有两列),这样使用自定义的resultMap作为返回就可以了。其实你无需增加任何东西,直接用这个四个的就行,只是另外两列不需要罢了,该怎么查还是怎么查,只是查了不用。 参考技术A 根据你的意思,你是要描述的是 后台实体类有 4个属性? 分别是 id、name 、birthday、address 字段。数据库对应也是4个字段。 接着你想只将 id name 查询映射到 实体类中吗?如果是这样。 直接需要什么列查什么列就行。
select id,name from XXX; 就行。其它字段自动映射为null ;
参考技术B <select id="findAlll" resultType="pojo">
SELECT ID,NAME from pojo
</select>

JPA 查询部分字段

参考技术A JPA默认得查询会把表里所有数据字段都返回
这样会带来一些问题
1.数据量大的字段会导致mysql I/O问题
2.一些敏感的信息我们不应该直接返回给用户,这样的话我们查出来数据后还得手动过滤一遍

但是JPA在这方面并没有支持得很好,而mybatis可以利用resultMap,resultType
那么JPA里面要怎么做呢
一种是利用jpa的@Query

当然我们首先要创建要返回数据的DTO对象
然后使用HQL语句封装。
不我们可以看看JPA生成的sql

第二种是利用entityManager

生成的sql

以上是关于mybatis如何查询返回部分字段?的主要内容,如果未能解决你的问题,请参考以下文章

mybatis多表查询,只取某些字段,其余字段返回为空,怎么处理??

mybatis查询返回返回的字段比resultclass的属性少会不会报错

mybatis返回一个count加一个字段该怎么设置返回resultType

mybatis返回一个count加一个字段该怎么设置返回resultType

mybatis返回一个count加一个字段该怎么设置返回resultType

java mybatis 查询列表会返回为null吗