记录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>