<select id="queryStudent" resultType="hz.playspringboot.demo.entity.Student">
select id,name from tb_user;
</select>
mapper文件里的配置是这样的,实际的返回值是这样:
{"id":"S2020000103","name":"IDA","password":null}
他将student类的password也显示出来了了,如何彻底隐藏我不希望他返回的参数,只返回select语句中指定的参数?
因为Student实体类中定义了password属性,输出的是Student实体类,所以会包含password属性;
不过sql里面没有查询password值,所以实体类中password的值是null。
想要隐藏password,可以从实体类中删除password属性;
或者mapper的resultType的值改为HashMap,对应的方法返回值也改为Map,这时输出的map值就不包含password属性了
……这都回答什么鬼,这就采纳了,不要误人子弟行不,实体类是直接和数据库交互的,所以实体类的属性和数据库表的字段是对应的
要让前端接收的数据不带有多余的字段,那么要新建一个类,StudentVO,作为视图返回类,StudentVO中只定义你想返回的参数
返回时,先从数据库查出Student然后再一个个赋值或用spring-framework的beanutil拷贝Student的属性到StudentVO中,然后再把StudentVO返回给前端
resultType改为resultMap
实体类中定义了password属性,那么你调用这个实体类的 toString方法,就一定会把password也打印,也因此password属性对应的值为null。实际上数据库中的password并没有获取,因为你的sql只查询了,id和name。