<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注入攻击的危险。而第二种则不会。这就是$和#的区别。
  这个$和#类似