因为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看看,页面有缓存的时候容易延迟演示。