你可以在 XML 映射文件中使用不同的参数占位符来接收这两个值。以下是一个示例:
<mapper namespace="com.example.mapper.UserMapper">
<select id="getUserByAttributes" parameterType="map" resultType="com.example.model.User">
SELECT * FROM user WHERE advertiser_id = #{advertiserId} AND product_platform_id = #{productPlatformId}
</select>
</mapper>
在上面的示例中,我们使用了 parameterType=“map”,这意味着 MyBatis 将传递一个 Map 对象作为参数。在 Java 代码中,你可以创建一个 Map 对象来传递两个不同类型值的参数,如下所示:
Map<String, Object> attributes = new HashMap<>();
attributes.put("advertiserId", "someAdvertiserId");
attributes.put("productPlatformId", "someProductPlatformId");
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = userMapper.getUserByAttributes(attributes);
在 XML 映射文件中,你可以使用 #{advertiserId} 和 #{productPlatformId} 来引用传递的 Map 对象中的属性。注意,键名(例如 advertiserId 和 productPlatformId)应该与你在 Map 中设置的键名相匹配。