开发喵星球

MyBatis 中 {} 里面的名称对应的是 Map 里面的 key 名称?

在 MyBatis 中,#{} 中的名称并不一定对应于 Java 的 Map 中的 key 名称。#{} 是 MyBatis 的参数占位符,用于动态地将参数值传递给 SQL 语句。而它里面的名称通常是用于占位符的标识,不直接对应于 Java 的 Map 中的 key 名称。

例如,考虑如下 SQL 查询:


这里的 #{userId} 是一个参数占位符,userId 并不需要在 Java 的 Map 中以相同的 key 名称存在,而是在使用这个 SQL 语句时,传递一个包含了 userId 对应值的 Map 对象即可。

当然,如果希望使用 Map 作为参数传递,确保 Map 中的 key 名称与 SQL 中 #{} 中的名称保持一致是一个良好的实践,这样可以方便地在 SQL 中引用正确的参数值。但这并不是强制要求,可以在 SQL 中使用任意名称的参数占位符,只要在传递参数时保持对应关系即可。

Proudly powered by WordPress