MyBatis 参数传递

发布于 2024-02-13 17:22:29 字数 1789 浏览 13 评论 0

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

迟到的我

暂无简介

0 文章
0 评论
23 人气
更多

推荐作者

内心激荡

文章 0 评论 0

JSmiles

文章 0 评论 0

左秋

文章 0 评论 0

迪街小绵羊

文章 0 评论 0

瞳孔里扚悲伤

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文