MyBatis String类型传递参数注意事项

时间:2023-01-18 10:36:02

Mybatis查询sql传入一个字符串传参数,报There is no getter for property named 'ids' in 'class java.lang.String'。

后来改成如下写法,无论参数名是啥,都要改成"_parameter"

如下:

 <select id="findByName" parameterType="string" resultType="com.domain.entity.FactoryEntity">
SELECT * FROM T_FACTORY WHERE F_NAME LIKE "%${_parameter}%"
</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