问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

为什么mysql数据库对应的字段有数据但是使用mybatis取出是0 或null

发布网友 发布时间:2022-04-07 17:32

我来回答

2个回答

懂视网 时间:2022-04-07 21:54

">
       <result column="BATCH_NUM" property="batchNum"/>
       <result column="TASK_STATUS" property="taskStatus"/>
       <result column="CALLED_PHONENUM" property="calledPhoneNum"/>
   </resultMap>

  (2)

  <select id="queryStatusByProjectId" parameterType="java.lang.String" resultType="monitorTaskStatusMap">
        select b.batch_num, c.called_phonenum,c.task_status
            from cc_call_task c
            left join cc_batch_calledperson b
            on c.batch_id = b.batch_id
            where b.batch_type in (2, 3)
            and c.task_status != 5
            <if test="value != null and value != ‘‘">
              and c.project_id = #{value}
            </if>
     </select>

  (3)

  java:

  List<TaskStatus> callTasks = service.queryStatusByProjectId(projectId);

  debug时发现callTasks.size()=1,但是值却是nul,最后搞了半天才发现原来(1)中<select>标签的resultType属性使用错误,改成resultMap即可

  究其原因是,MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则是对外部resultMap标签的引用(如本例中的(1)),但是resultType跟resultMap不能同时存在。在MyBatis进行查询映射的时候,其实查询出来的每一个属性都是放在一个对应的Map里面的,其中键是属性名,值则是其对应的值。当提供的返回类型属性是resultType的时候,MyBatis会将Map里面的键值对取出赋给resultType所指定的对象对应的属性。所以其实MyBatis的每一个查询映射的返回类型都是ResultMap,只是当我们提供的返回类型属性是resultType的时候,MyBatis对自动的给我们把对应的值赋给resultType所指定对象的属性,而当我们提供的返回类型是resultMap的时候,因为Map不能很好表示领域模型,我们就需要自己再进一步的把它转化为对应的对象,这常常在复杂查询中很有作用。(包括如本例中的表关联查询等等情况)

  终上所述,本例中错误的原因在于已经自定义了<resultMap>中id为monitorTaskStatusMap的结果集,而需求也是要引用这个,正确的是应该用resultMap指定,我却用了resultType。。。  

  最后可以简要概括两点:

  1.当进行单表简单查询时且返回值类型是基本类型时,一般尽量使用resultType;

  2.当进行表关联查询时,或者说xml中定义了相关的resultMap标签,那么就一般尽量使用resultMap;

  3.resultType和resultMap不能同时使用。

  本文参考自:http://zhuyuehua.iteye.com/blog/1721715

mybatis之sql执行有数据但返回结果为null

标签:

热心网友 时间:2022-04-07 19:02

为什么mysql数据库对应的字段有数据但是使用mybatis取出是0 或null
首先换数据库,MySQL处理这个数量级数据比较吃力。推荐你用DB2 或ORACLE

如果不能换,检查一下存储引擎用InnoDB,如果是,检查
innodb_flush_log_at_trx_commit 这个选项,是否是1
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
长春小飞没有车没有房 碳钢的多久生锈 碳钢多久会生锈 碳钢多长时间会开始生锈 碳钢和铝哪个容易生锈 梦见天宫图是什么意思 光遇2023好友树解锁图鉴 光遇二级节点多少个 ...火柴小女孩》《词语手册》里有很多词语的意思的,求告知 暖融融解释 领淘通淘客助手这个软件怎么样? 辅导期一般纳税人收到进项发票时怎么做账,抵扣时又怎么做. 取得进项发票怎么做账 视力验光单上写度数(R)0.75和(L)1.00分别是什么意思?还有写了视力0.9又是... 一般纳税人进项税抵扣如何做分录 2019年进项票已做账待抵扣进项税额,2020年5月已经认证发票抵扣,该怎 ... 眼镜验光单子里的R:-5.00/-250*10和L:-6.00/-250*180 是什么意思 增值税专用票当月未认证抵扣,但是要入账,请问该用什么科目? 检查视力,单子上写的 AVG SE 这两个是什么意思?还有 &lt;R&gt;和&lt;L&gt; 指的... 进项发票做账如何处理? 本月未抵扣待下月抵扣的增值税应怎么记账 抵扣进项税时如何做账? 托朋友在国外配一副渐进片,请问验光单上矫正视力和下加光中间的参数是什么意思? 慢性病药品目录 待抵扣进项税如何做账?如何记账? 我初二女生,夏天有游泳班,我胸不小,可以穿连体泳衣和凉拖直接走到游泳馆吗? 有糖尿病吃那些药 初中女生泳装秀怎么穿 血糖高,吃什么药。可以降下来 增值税申报表二中,待抵扣进项税额怎么做账务处理? 眼睛验光数据上显示的各项数据是什么意思呢?越详细越好,谢谢 中班建康活动教案大全怎样过马路 手机陀螺仪和重力感应器是一个东西吗?为啥有些有带重力感应器不戴陀螺仪,有些重力感应器陀螺仪都戴。 微信删除好友,不记得,任何联系方式都没有,怎么找回来 微信好友删除了怎么还能再加回来,我不知道,所有他的信息都删了,还能怎样找回 把微信好友删除了!我怎么找回他的微信!没有记住,也没有手机号 电磁锁对拍人体有影响吗 脉脉app,安卓平台怎么取消自动付费管理? 脉脉关闭自动续费,当月会员会被取消吗 东营大海物业管理有限公司怎么样? 东营市蓝天物业管理有限责任公司怎么样? 东营市万安物业服务有限责任公司怎么样? 东营中祥物业服务有限公司怎么样? 东营维城物业管理有限公司怎么样? 东营永诚物业管理有限公司怎么样? 东营市康力物业管理有限公司怎么样? 成为脉脉商务会员开通包月免密支付怎么取消? 东营盛禾物业服务有限公司怎么样? 东营市格林沃德物业管理有限公司怎么样? 用微信开会员自动续费,但是微信里显示这个会员自动续费是关闭的,下个月会续费吗? 东营金基物业服务有限公司怎么样?