mybatis数据查询注意事项

记录mybatis数据查询的一些坑,以防后续继续犯错


List<Base> list = mapper.queryOrders(queryParams);

if(null == list)
    return null;
这里需要注意,查询结果为集合时,如果没有查询到数据,返回的不是null,而是空集合

 

Base base = mapper.queryOrder(queryParams);

这里需要注意,如果查询结果为对象时,没有查询到数据,返回的对象为null,需要进行非空判断,避免空指针异常

 

mapper的java类中编写查询数据接口时如果只有一个string型的参数时,有两种写法

一、mapper的java类中方法的参数需要添加@Param注解,否则会报错

示例如下:

List<PftAgtMonthProfit> selectAllProfit(@Param("agentId") String agentId);

二、mapper的java类还是正常写,但是mapper的xml文件编写sql时参数写法要调整

示例如下:

List<PftAgtMonthProfit> selectAllProfit(String agentId);

<select id="selectAllProfit" resultMap="BaseResultMap">
    select
    <include refid="Base_Column_List"/>
    from t_device where  agentId = #{agentId,jdbcType=VARCHAR}
  </select>


版权声明:本文为chali1314原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。