Mybatis的占位符的数据类型
mybatis框架中的映射文件中有个#{}的标识符,
有个例子: update t_table set age = #{age}, 如果#{age}的值为10,在最后生成的sql语句中是什么?
update t_table set age = 10
为什么不是:update t_table set age = ‘10’
#{} 在 MyBatis 中的作用是进行参数的预处理和类型转换,而不是简单的字符串拼接。
当你使用 #{age} 时,MyBatis 会将传入的值作为参数(会根据传入参数的 Java 类型来推断对应的 SQL 类型)来处理,会根据传入的参数类型进行相应的转换,而不会简单地将其作为字符串拼接到 SQL 语句中。
所以,如果传入的 age 是一个整数类型的值为 10,使用 #{age} 会在生成的 SQL 中将其作为整数处理:
废话短说