Mybatis 通配符# 以及 $的使用


 1. MyBatis中使用parameterType向SQL语句传参,parameterType后的类型可以是基本类型int,String,HashMap和java自定义类型等。 OK~


2.一般用在xml写SQL都是用#,如#{param}。但是有时会看到用$的时候,如${param}。


3. 那么$ 和 # ,有什么区别呢?

   使用#{para}引用参数的时候,Mybatis会把这个参数认为是一个字符串,如:

 		update tableName
			   	   
				       tzs            = #{blockCount},
				       tdjz          = #{curBlockNum},
				       tzt           = #{storeStatus},
				       txx 	      = concat(txx, #{fileData}),
				       lastsj         = sysdate
			   	     
		where tid=#{logID}


此时,#{logID}等价于 ‘123’,对,是一个字符串。


 使用 ${param}引用参数的时候,Mybatis会把这个参数认为是sql一部分,不会当成字符串,常用在动态设置表名时使用。如:

   
	       UPDATE ${table}
			   	   
				   	   columnA = #{zdsbzt}
			   	    
					   WHERE columnB = #{zdjh}
	                   AND columnC IN
	                   
	                   		${item}
	                    
	  


   

4.从安全性上考虑,能使用#尽量使用#来传参,因为这样可以有效防止SQL注入的问题。


你可能感兴趣的:(Mybatis)