文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MyBatis参数传递方式详解

2024-11-30 16:57

关注

单个参数

单个参数可以是基本类型、包装类型或JavaBean对象。如果是JavaBean对象,MyBatis会根据属性名来映射参数。

例如,假设有一个查询用户信息的方法,传入参数为用户id:

public User getUserById(int id);

在SQL语句中,可以使用#{id}来引用参数值:

<select id="getUserById" resultType="com.example.User">
select * from user where id = #{id}
select>

多个参数

多个参数可以使用@Param注解或Map对象传递。

@Param注解

@Param("name")表示参数为name属性的值,@Param("age")表示参数为age属性的值。例如,假设有一个查询用户信息的方法,传入参数为用户名和年龄:

public List<User> getUsersByNameAndAge(@Param("name") String name, @Param("age") int age);

在SQL语句中,可以使用#{name}和#{age}来引用参数值,对应的XML配置文件如下:

<select id="getUsersByNameAndAge" resultType="com.example.User">
select * from user where name = #{name} and age = #{age}
select>

Map对象

Map的key表示参数名,value表示参数值:

public List<User> getUsers(Map<String, Object> paramMap);

在SQL语句中,可以使用#{name}和#{age}来引用参数值:

<select id="getUsers" resultType="com.example.User">
select * from user where name = #{name} and age = #{age}
select>

数组或集合类型

数组

使用数组或集合类型作为参数传递时,MyBatis会将数组或集合中的每个元素作为一个单独的参数进行处理。可以在SQL语句中使用#{0}、#{1}、#{2}等形式引用每个参数。

例如,假设有一个查询用户信息的方法,传入参数为用户id列表,可以使用以下代码实现:

public List<User> getUsersByIds(Integer[] ids);

在SQL语句中,使用foreach标签来遍历id数组:

<select id="getUsersByIds" resultType="com.example.User">
select * from user where id in
<foreach item="item" collection="array" open="(" separator="," close=")">
#{item}
foreach>
select>

调用时,可以使用数组传递参数:

Integer[] ids = {1, 2, 3};
List<User> users = userDao.getUsersByIds(ids);

集合

使用集合类型作为参数传递时,可以使用List或Set。例如,假设有一个查询用户信息的方法,传入参数为用户名列表,可以使用以下代码实现:

public List<User> getUsersByNames(List<String> names);

在SQL语句中,使用foreach标签遍历name列表:

<select id="getUsersByNames" resultType="com.example.User">
select * from user where name in
<foreach item="item" collection="list" open="(" separator="," close=")">
#{item}
foreach>
select>

调用时,可以使用List传递参数:

List<String> names = new ArrayList<>();
names.add("Tom");
names.add("Jerry");
names.add("Kate");
List<User> users = userDao.getUsersByNames(names);

最后

MyBatis作为一个轻量级的ORM框架,提供了多种灵活的参数传递方式,包括单个参数、多个参数、Map对象、JavaBean对象、数组或集合类型等。使用不同的参数传递方式,可以根据具体情况灵活选择,提高开发效率。

来源:今日头条内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯