您现在的位置是:网站首页>个人日记个人日记

MyBatis查询单条后显示null的问题解决方法

左鹏2019-03-06 05:18:16个人日记517人已围观

简介在使用Mybatis做单条查询的时候,遇到查询出来本来有数据,可是打印出来的时候却是null,或者直接报【java.lang.NullPointerException】错误,效果如下:==> Preparing: select * from product_category where category_id=?  ==> Parameters: 1(Int

在使用Mybatis做单条查询的时候,遇到查询出来本来有数据,可是打印出来的时候却是null,或者直接报【java.lang.NullPointerException】错误,效果如下:

==> Preparing: select * from product_category where category_id=? 
==> Parameters: 1(Integer)
<== Total: 1 null

可以看出分明返回Total:1,查询出一条数据了,可以在打印的时候却是null,那是因为变量名没有打到对应的mysql字段列名,需要使用以下方案解决

1、定义resultMap

<resultMap id="resultMap" type="ProductCategory">    
<id property="categoryId" column="category_id" />    
<result property="categoryName" column="category_name" />    
<result property="categoryType" column="category_type" />    
</resultMap>

2、在select标签里指定[resultMap],一定要注意select里的resultMap的值一定要与resultMap标签里的id的值保持一致

<select id="findOne" resultType="ProductCategory" resultMap="resultMap">    
select * from product_category where category_id=#{categoryId}    
</select>

就可以了,效果如下

==> Preparing: select * from product_category where category_id=?    
==> Parameters: 1(Integer)    
<==Total: 1 ProductCategory{categoryId=1, categoryName='222', categoryType=92}


站点信息

  • 建站时间:2018-09-18
  • 网站程序:Laravel
  • 主题模板:《今夕何夕》
  • 文章统计:75条
  • 统计数据
  • 微信公众号:扫描二维码,关注我们