<select id="SpreadReport.jugdeCompany_Spread_Report_Name" parameterClass="map" resultClass="java.lang.Integer">
<![CDATA[
select count(*) from Company_Spread_Report where sReportName like #reportName# and iCompanyID=#companyID#
]]>
</select>
<delete id="SpreadReport.delete_Company_Spread_Report" parameterClass="java.lang.Integer">
<![CDATA[
delete from Company_Spread_Report where id =$id$
]]>
</delete>
问题:此sql语句的条件一个是用"#",一个是用"$",这有什么区别,为什么???
答:你写过jdbc吧?传参的方式,一种是直接拼接字符串,一种是用PreparedStatement,然后调用方法传参。
第一种方式,面临sql注入攻击的危险。而第二种则不会。这就是$和#的区别。
这个$和#类似