4 个回答

#{}会自动将传入参数用''包裹,你的参数num本身就有'',所以是你看到的现象;
如果不想自动加引号可以用${}

limit #{0} 实在是看不懂
另外你num是字符串啊.

你num 本身里面带着一对引号,

可以试试:

service层可以修改成:num转成int

return caseMapper.get_cases(Integer.parseInt(num),type);

dao层改成:指定参数名称

List<News> get_cases(@Param("num") int num,@Param("type") int type);

xml改成:指定参数名称和类型

    <select id="get_cases" resultType="News">
        SELECT * FROM `case`
        WHERE state=0 AND `type`=#{type,jdbcType=INTEGER}
        ORDER BY create_time DESC limit #{num,jdbcType=INTEGER}
    </select>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题