MyBatis String类型传递参数注意事项
Mybatis查询sql传入一个字符串传参数,报There is no getter for property named 'ids' in 'class java.lang.String'。
后来改成如下写法,无论参数名是啥,都要改成"_parameter"
如下:
1 <select id="findByName" parameterType="string" resultType="com.domain.entity.FactoryEntity"> 2 SELECT * FROM T_FACTORY WHERE F_NAME LIKE "%${_parameter}%" 3 </select>
同时对于#和$的区分应当加以区分
#{}: 解析为一个 JDBC 预编译语句(prepared statement)的参数标记符,一个 #{ } 被解析为一个参数占位符 。
${}: 仅仅为一个纯碎的 string 替换,在动态 SQL 解析阶段将会进行变量替换。
name-->cy
eg: select id,name,age from student where name=#{name} -- name='cy'
select id,name,age from student where name=${name} -- name=cy