Largemage
2018-06-30 10:36
采纳率: 85.7%
浏览 7.0k

mybatis+mysql下,select count(*)语句一直返回null,明明表里不为空

我有一张ask表,里面有12条记录,且course_id都为1(int)
resultMap type="Ask" id="BaseAskMap"
result column="course_id" property="courseId"

select id="getCount" resultType="Integer" resultMap="BaseAskMap"
select count(*) from ask where course_id=#{courseId}
select

controller层传过去的courseId测试过了,的确为1,我就搞不懂了,为什么总是返回null???????

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

15条回答 默认 最新

  • 梦小星 2018-06-30 11:12
    已采纳

    你在返回结果的那里是返回null?如果是这样,你需要看看mybatis里的语句是不是写的有问题,指返回值方面,如果只是返回Long的话,使用resultType属性

    点赞 评论
  • wo不爱学习 2018-06-30 10:42

    sql语句拷到工具执行看看呢

    点赞 评论
  • hellokittyjack 2018-06-30 10:46

    用断点跟过去或者把sql打印出来看下,看看是不是courseId没有传过去的原因。

    点赞 评论
  • 梦小星 2018-06-30 11:07

    你的SQL语句在控制台打印出来了吗??

    点赞 评论
  • oBuZaiChenMo 2018-06-30 12:01

    断点看看,执行sql语句,看看是否是正确的

    点赞 评论
  • darkendon 2018-06-30 12:49

    既然是返回的统计函数,那么可以确定的的值一定是整数。一般i接受就可以了。所以咋select标签中设置resultType为int就可以了。
    你这里却又用resultMap来接受,显然你接受的也并非你用count统计出来的字段,你这个count统计的字段也没有加别名呢。
    你应该在mapper接口中定义这个方法的时候,返回值就是int,或者long,然后这里在xml文件问写sql的时候,结果带不带都无所谓,
    但是不应该用resultMap多此一举。

    点赞 评论
  • yzq888666 2018-06-30 13:00

    count(0)试试呢

    点赞 评论
  • xalee 2018-06-30 13:22

    把sql语句粘贴到可视化工具中试试,如果sql没问题那就是程序中哪里出问题了,比如没有写返回值等,断点看看

    点赞 评论
  • weixin_40852944 2018-06-30 14:19

    resultType="Integer" 改为 resultType="java.lang.Integer"

    点赞 评论
  • 大西瓜hubery 2018-06-30 14:38

    在Dao层debug试试,看看从数据库中是否已经查询到数据,如果有数据那么就是Dao到Controller之间的问题。

    点赞 评论
  • bule_skyOn 2018-06-30 16:38

    resultType和resultMap不应该工存于一个查询,resultType是包+类型

    点赞 评论
  • qq_40039206 2018-07-01 03:16

    你把select标签的resultType换成parameterType就好了,sql语句没问题,select标签的问题,没有制定参数属性

    点赞 评论
  • weixin_42050613 2018-07-03 03:16

    返回值类型是一个“Ask”,你得到却是一个int类型。

    点赞 评论
  • akuikly 2018-07-06 03:07

    resultMap="BaseAskMap" 你count(*) 没有映射吧

    点赞 评论
  • 梦小星 2018-06-30 10:53

    你 from 关键字呢???

    点赞 评论

相关推荐 更多相似问题