`
fireinjava
  • 浏览: 481183 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

mybatis sql in 查询

 
阅读更多

mybatis官方学习文档:http://www.mybatis.org/core/getting-started.html

 

本文转自:http://www.blogjava.net/xmatthew/archive/2011/08/31/355879.html

1. 当查询的参数只有一个时
  findByIds(List<Long> ids)
 1.1 如果参数的类型是List, 则在使用时,collection属性要必须指定为 list

<select id="findByIdsMap" resultMap="BaseResultMap">
 Select
 <include refid="Base_Column_List" />
 from jria where ID in
 <foreach item="item" index="index" collection="list" open="(" separator="," close=")">
  #{item}
 </foreach>
</select>

 
 
 findByIds(Long[] ids)
 1.2 如果参数的类型是Array,则在使用时,collection属性要必须指定为 array

 <select id="findByIdsMap" resultMap="BaseResultMap">
 select
 <include refid="Base_Column_List" />
 from tabs where ID in
 <foreach item="item" index="index" collection="array" open="(" separator="," close=")">
  #{item}
 </foreach>
    </select>

 
2. 当查询的参数有多个时,例如 findByIds(String name, Long[] ids)
 这种情况需要特别注意,在传参数时,一定要改用Map方式, 这样在collection属性可以指定名称
         下面是一个示例
         Map<String, Object> params = new HashMap<String, Object>(2);
         params.put("name", name);
         params.put("ids", ids);
        mapper.findByIdsMap(params);

<select id="findByIdsMap" resultMap="BaseResultMap">
 select
 <include refid="Base_Column_List" />
 from tabs where ID in
 <foreach item="item" index="index" collection="ids" open="(" separator="," close=")">
  #{item}
 </foreach>
</select>

 

分享到:
评论
4 楼 fireinjava 2015-07-20  
LyAn_爱踢爱死 写道
我有疑问,关于数组时你说collection="array"  那调用方法中的ids 去哪了。

你有环境的话可以直接试下。上面是较早以前转载的文章,目前来讲上面写的也有错的。
比如"如果参数的类型是List, 则在使用时,collection属性要必须指定为 list"这个有问题的。collection="ids"也是可以的
3 楼 LyAn_爱踢爱死 2015-07-20  
我有疑问,关于数组时你说collection="array"  那调用方法中的ids 去哪了。
2 楼 bjfuouyang 2015-01-25  
获益匪浅,受益良多。
1 楼 hehongbo7632566 2015-01-04  

相关推荐

    mybatis之动态SQL

    MyBatis 是一款深受 Java 开发者喜爱的持久层框架,它允许开发者将 SQL 查询与 Java 代码直接关联,提供了一种灵活的方式来处理数据库交互。动态 SQL 是 MyBatis 的一大特色,它允许我们在运行时根据条件构建 SQL ...

    MyBatis动态拼接SQL

    MyBatis是一款强大的Java持久层框架,它允许开发者将SQL语句直接写在XML映射文件或注解中,提供了灵活的数据库交互方式。在某些场景下,我们可能需要根据业务逻辑动态地拼接SQL语句,以实现更复杂的查询需求。这就是...

    Mybatis资料

    mybatis sql in 查询、MyBatis 根据表结构自动生成代码, domain, dao, mapper 文件、Mybatis关联查询一对一和一对多的实现、mybatis批量插入和更新、Mybatis之批量更新操作

    intellij-mybaitslog:用于在IDEA将MybatisSQL日志还原为可执行SQL,Used to restore Mybatis SQL logs to executable SQL in IDEA,

    Mybatislog 2020.08.11 《IDEA 2020.2 测试通过支持使用。》 2020.08.25 重构代码所有代码,代码中完善备注信息 2020.09.19 添加对特点类型的引号支持 2020.10.07 支持2020.2.3版本 2020.11.20 改进分隔判断,由单纯...

    mybatis-log-plugin:将Mybatis SQL日志还原到原始的整个可执行SQL

    还原MyBatis输出的日志为完整的SQL语句。 把SQL日志里面的?替换为真正的参数值。 选中要还原的MyBatis日志,右键点击菜单Restore Sql,还原SQL语句. Java接口方法与Mapper xml文件互相跳转。 按钮作用 Text: 从文本...

    Mybatis plus中使用in查询出错如何解决

    Mybatis plus中使用in查询出错的问题可以通过自定义SQL语句或使用Mybatis plus提供的其他方法来解决。开发者需要了解Mybatis plus的工作机制和参数处理机制,以便更好地使用这个框架。 总结 本文详细介绍了Mybatis ...

    MyBatis学习代码

    MyBatis学习代码: ...mybatis实战教程mybatis in action之八mybatis 动态sql语句 mybatis实战教程mybatis in action之九mybatis 代码生成工具的使用 mybatis SqlSessionDaoSupport的使用附代码下载

    mybatis in practice 源代码

    MyBatis可以自动将SQL查询结果映射到这些对象上。 4. **Service层**:这部分代码展示了业务逻辑处理,通常包含Service接口和实现类,它们调用DAO(数据访问对象)进行数据操作。 5. **DAO层**:DAO接口和实现类...

    mybatis动态sql及关联查询项目示例

    本项目示例主要围绕MyBatis的动态SQL和关联查询进行深入探讨,旨在帮助开发者更好地理解和运用这两个特性。 动态SQL是MyBatis的一大亮点,它允许我们在运行时根据条件动态地生成SQL语句。这种功能在处理复杂的业务...

    mybatis-demo11-动态SQL语句.zip

    MyBatis 是一款深受开发者喜爱的持久层框架,它简化了Java应用与数据库之间的交互,提供了灵活的SQL映射和对象关系映射功能。在MyBatis中,动态SQL是其强大特性之一,允许开发者根据特定条件动态构建SQL语句。在本...

    mybatis简单查询

    **条件查询**:MyBatis提供了多种动态SQL标签,如`choose`(相当于`switch`)、`when`、`otherwise`,`if`(相当于`if...else`),`where`(用于避免在无条件时生成多余的`WHERE`关键字),`trim`(修剪SQL片段的...

    Mybatis多参数查询与列表查询不同方式实现

    总结来说,Mybatis通过多种方式支持多参数查询和列表查询,包括Map参数、注解参数、Pojo类参数、动态SQL以及集合参数。选择哪种方式取决于你的项目需求和个人偏好。灵活运用这些技巧,可以更好地实现数据库查询,...

    Mybatis实现动态代理,动态SQL

    此外,还可以使用 `&lt;foreach&gt;` 标签来实现动态in查询,可以使用 `&lt;trim&gt;` 标签来实现格式化的标记,可以完成set或者是where标记的功能。 在使用Mybatis框架时,还可以使用 `&lt;sql&gt;` 和 `&lt;include&gt;` 标签来实现SQL...

    mybatis动态sql及其JAVA示例

    - **`&lt;foreach&gt;`**:常用于处理集合类型的参数,如IN查询等。 - **`&lt;choose&gt;`、`&lt;when&gt;`、`&lt;otherwise&gt;`**:提供类似于Java中的switch-case结构,根据不同的条件选择不同的SQL片段。 - **`&lt;bind&gt;`**:用于绑定表达式...

    mybatis动态SQL的详所有细用法代码。经过测试

    Mybatis 是一款流行的 Java 持久层框架,它的核心特性之一是动态 SQL。动态 SQL 允许开发者根据条件在 SQL 查询中灵活地构建不同的逻辑,极大地提高了代码的可读性和可维护性。本测试项目提供了 Mybatis 动态 SQL 的...

    SQL.rar_MyBatis3DynamicSql_dynamic mybatis_mybatis_mybatis Dyna

    综上所述,这个压缩包中的内容涵盖了MyBatis 3的动态SQL特性,它是提高开发效率、简化复杂查询的关键工具,结合Maven项目结构和IntelliJ IDEA的开发环境,可以帮助开发者高效地构建和管理数据库操作。

    MyBatis 动态 SQL:灵活而强大的查询构建器.pdf

    ### MyBatis 动态 SQL:灵活而强大的查询构建器 #### 一、动态 SQL 简介 MyBatis 是一款优秀的持久层框架,它能够实现对象与 SQL 映射文件之间的无缝映射,从而大大减少了手动编写 JDBC 代码的工作量。其核心特性...

    MyBatis模糊查询

    在MyBatis中实现模糊查询主要有两种方式:动态SQL和静态SQL。 ##### 1. 动态SQL 动态SQL是MyBatis提供的一个非常强大的功能,可以让我们根据条件生成不同的SQL语句。这在执行模糊查询时非常有用,因为我们可以根据...

    mybatis 动态sql resultMap

    MyBatis 是一款深受开发者喜爱的持久层框架,它简化了Java应用与数据库之间的交互,尤其是在处理复杂的SQL操作时。动态SQL是MyBatis的一大特色,它可以让你在映射文件中编写灵活多变的SQL语句,极大地提高了代码的...

    mybatis关联/级联以及动态sql

    在关联和级联查询以及动态SQL方面,MyBatis提供了强大的功能,使得开发人员能够更加灵活地处理数据库交互。 首先,我们来探讨MyBatis中的关联(Association)和级联(Cascading)。关联通常用于描述一个实体对象与...

Global site tag (gtag.js) - Google Analytics