说明:在mybatis 的sql里不是不能写注释,而是注释不能有#{},mybatis仍旧会把#{}算成一个带注入的参数
如代码段2所示,mysql数据库更换为oracle数据库时,#{date}需要明确jdbcType,而该代码段中仅将适用于mysql的sql注释,依旧会报同样的错,最好是将注释的sql删除。
<select id="slectSlagsteelRatioByDate" resultType="java.lang.Double">
-- select slagsteel_ratio FROM process_history WHERE r furnace_num = #{furnaceNum}
-- ORDER BY real_time DESC limit 0,1
select slagsteel_ratio FROM(
select slagsteel_ratio FROM process_history WHERE real_time <= #{date,jdbcType=TIMESTAMP}
ORDER BY real_time DESC ) WHERE ROWNUM = 1
</select>
注意事项
1、where语句等用到大于小于等符号时候,需要使用 <![CDATA[ > ]]>或者 <![CDATA[ < ]]>进行识别。
2、如果sql文中有动态sql文标签,比如sql文,此时wwww为传递的参数,不需用#{wwww }取值,直接使用即可。
3、如果超过一个参数,需要在接口方法的每个参数定义时候使用@