MyBatismybatis 控制台打印出的sql 执行结果也空 但是以sql放到mysql执行有数量

mybatis中的sql如下

select airln_Cd airlnCd,city_coordinate_j cityCoordinateJ,city_coordinate_w cityCoordinateW
        from airportinfonew where iATA=#{iATA} 

自身当请的时段是这样加的参数
:/airportFlight/findAirportFlight/?iATA=’WDS’  在参数达到加以了个引号

然后 mybatis 使用#盛传参数时,sql语句解析是会见加上””,当成字符串来解析
相当给本人的sql 变成了 

select airln_Cd airlnCd,city_coordinate_j cityCoordinateJ,city_coordinate_w cityCoordinateW
from airportinfonew where iATA="'WDS'"

 所以肯定查不顶数码。

没错的做法是以呼吁改为/airportFlight/findAirportFlight/?iATA=WDS

1.
#拿盛传的数码都算一个字符串,会对电动传入的多少加以一个双引号。如:order
by #user_id#,如果传入的价值是111,那么解析成sql时之值也order by “111”,
如果传入的价值是id,则分析成的sql为order by “id”.

  

  1. $将盛传的数量直接展示生成于sql中。如:order by
    $user_id$,如果传入的值是111,那么解析成sql时的价为order by user_id, 
    如果传入的价值是id,则分析成的sql为order by id.
      
  2. #术能够挺挺程度防止sql注入。
      
    4.$术无法防护Sql注入。

5.$道相似用于传入数据库对象,例如传入表名.
  

6.形似能为此#的就别用$.

 

MyBatis排序时采用order by 动态参数时欲留意,用$而不是#

网站地图xml地图