#{}
和${}
的区别
#{}
格式的语法会导致 MyBatis
创建 PreparedStatement
参数并安全地设置参数(就像使用 ?
一样)
${}
用于直接在 SQL 语句中插入一个不转义的字符串。
id
& result
id
和result
都将一个列的值映射到一个简单数据类型(字符串,整型,双精度浮点数,日期等)的属性或字段。
这两者之间的唯一不同是, id
表示的结果将是对象的标识属性,这会在比较对象实例时用到。 这样可以提高整体的性能,尤其是缓存和嵌套结果映射(也就是联合映射)的时候。
关联中不同的是你需要告诉 MyBatis
如何加载关联。MyBatis
在这方面会有两种不同的 方式:
1. 嵌套查询:通过执行另外一个 SQL 映射语句来返回预期的复杂类型。
2. 嵌套结果:使用嵌套结果映射来处理重复的联合结果的子集。