MyBatis 参数传递
1. 传递单个参数
在使用 MyBatis 如果 SQL 语句只需要传入一个参数,那么括号里面填写什么都可以
List<Tag> getTagsByArticleId(Long id);
<select parameterType="long" resultMap="tagMap">
select * from tag where article_id=#{value}
</select>
2. 传递多个参数
2.1 使用 Map 传递(不推荐)
我们可以将多个参数封装在 Map 中,然后通过#{key}的形式来取出参数值
List<Tag> getTagList(Map map);
<select parameterType="hashmap" resultMap="tagMap">
select * from tag where content=#{content} and article_id=#{articleId}
</select>
此种传递方式在开发中不允许使用。
2.2 使用索引值传递(不推荐)
当使用 Mapper 动态代理开发时,如果方法传入多个参数,那么我们通过#{index}的形式,依次取出参数值,index 从 0 开始
List<Tag> getTagList(String content,Long articleId);
<select resultMap="tagMap">
select * from tag where content=#{0} and article_id=#{1}
</select>
2.3 使用@Param 注解(推荐使用)
List<Tag> getTagList(@Param("content") String content,@Param("article_id") Long articleId);
<select resultMap="tagMap">
select * from tag where content=#{content} and article_id=#{article_id}
</select>
2.4 封装类传递(参数较多时推荐使用)
List<Tag> getTagList(Tag tag);
<select parameterType="Tag" resultMap="tagMap">
select * from tag where content=#{content} and article_id=#{articleId}
</select>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: MyBatis 缓存机制
下一篇: 谈谈自己对于 AOP 的了解
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论