逆向出的Mybatis.xml如何返回select count(*) from table的Integer数值

因为xml文件都是逆向工程生成出来的内容,所以惯性思维般的在xml中写下了这种错误的select语句

  <select id="getCountNumber" resultMap="BaseResultMap">
  	select count(*) from blog_talk
  </select>

然后发现返回的json没有任何东西

在这里插入图片描述然后回xml中查看一下,语句在数据库里测试过自然没毛病,id也是匹配的没问题,那说明是最后的这个resultMap="BaseResultMap"出了问题,向上翻我们找到定义这个BaseResultMap的语句:

 <resultMap id="BaseResultMap" type="com.myweb.bean.BlogTalk" >
    <id column="btid" property="btid" jdbcType="INTEGER" />
    <result column="tname" property="tname" jdbcType="VARCHAR" />
    <result column="kissid" property="kissid" jdbcType="INTEGER" />
    <result column="talktime" property="talktime" jdbcType="VARCHAR" />
    <result column="talk" property="talk" jdbcType="VARCHAR" />
    <result column="imgurl" property="imgurl" jdbcType="VARCHAR" />
  </resultMap>

映射是到了com.myweb.bean.BlogTalk这个实体类,但这个实体类下只定义了一些id,name,time之类的东西,而假如说我们需要count(*)的话,得出来的结果既不是id也不是name,这个数值独立于表之外,只是个单纯的Integer,所以如果这里还来找BaseResultMap自然是错误的。


这里将resultMap="BaseResultMap"修改成resultType=“java.lang.Integer”

  <select id="getCountNumber" resultType="java.lang.Integer">
  	select count(*) from blog_talk
  </select>

然后发现恢复正常

在这里插入图片描述

如果修改完了页面还是空白,那可以先重启几次tomcat看看,页面有缓存的时候容易延迟演示。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Deeeelete

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值