在MyBatis中,$和#都是用于参数替换的符号,但在使用时有一些区别。
示例:
<select id="getUserById" resultType="com.example.User">
SELECT * FROM user WHERE id = #{id}
</select>
在上面的示例中,#{id}将会被预编译成一个占位符,然后通过PreparedStatement传入参数值。
示例:
<select id="getUserByTableName" resultType="com.example.User">
SELECT * FROM ${tableName}
</select>
在上面的示例中,${tableName}将会直接替换成实际的表名。
总结: