在 MyBatis 中, 标签的
parameterType
属性用于指定参数类型,而参数的传递方式则取决于你如何在 Java 代码中设置参数以及 MyBatis 如何处理这些参数。以下是一些常见的参数传递方式:
-
直接传递参数:
- 在 Java 代码中,你可以直接创建一个与
parameterType
指定类型相匹配的对象,并将其作为参数传递给标签。
- 例如,如果
parameterType
是int
,你可以创建一个Integer
对象并传递给。
- 在 Java 代码中,你可以直接创建一个与
-
使用
#{}
语法:- MyBatis 支持使用
#{}
语法来引用参数。这种方式会将参数值进行预处理(如 SQL 注入防护),然后传递给数据库查询。 - 在
标签中,你可以使用
${parameterName}
来引用参数。 - 例如:
- MyBatis 支持使用
-
使用 JavaBean:
- 你还可以将参数封装到一个 JavaBean 对象中,并将该对象作为参数传递给
标签。
- MyBatis 会自动将 JavaBean 对象的属性映射到 SQL 查询中的占位符上。
- 例如,假设你有一个
User
类,你可以这样传递参数:
- 你还可以将参数封装到一个 JavaBean 对象中,并将该对象作为参数传递给
-
使用 Map:
- 另一种常见的方式是使用
Map
来传递参数。你可以创建一个Map
对象,其中键是参数名,值是参数值,然后将这个Map
对象作为参数传递给标签。
- 在 SQL 查询中,你可以使用
#{key}
来引用 Map 中的值。 - 例如:
- 在 Java 代码中,你可以这样调用:
Map
params = new HashMap<>(); params.put("userId", 1); params.put("userName", "John"); User user = sqlSession.selectOne("getUserByMap", params);
- 另一种常见的方式是使用
-
使用注解:
- 除了在 XML 配置文件中定义参数传递方式外,你还可以使用注解来指定参数类型和传递方式。
- 例如,你可以使用
@Param
注解来为方法参数指定名称,然后在 SQL 查询中使用这些名称。 - 例如:
在 Java 代码中:
User user = sqlSession.selectOne("getUserById", 1, User.class);
注意:在这种情况下,你需要在 MyBatis 配置文件中启用注解支持。
这些是 MyBatis 中常见的参数传递方式。你可以根据具体的需求和场景选择最适合的方式。