Mybatis如何根据List批量查询List结果

目录
  • 根据List批量查询List结果
    • mapper接口
    • mapper.xml文件
  • 根据多条件List查询
    • mapper文件
    • DAO片段

根据List批量查询List结果

mapper接口

/**
 * 根据剧典id list查询剧典
 */
public List<Drama> selectByIds(@Param("dramaIds")List<Long> dramaIds);

mapper.xml文件

<!-- 根据剧典id list查询剧典 -->
<select id="selectByIds" resultMap="DramaImageResultMap">
    select * from drama where drama_id in 
    <foreach collection="dramaIds" item="dramaId" open="(" close=")" separator=",">
    #{dramaId}
   </foreach>
</select>

数组参数

//接口方法
ArrayList<User> selectByIds(Integer [] ids);
//xml映射文件
<select id="selectByIds" resultMap="BaseResultMap">
    select
    *
    from user where id in
    <foreach item="item" index="index" collection="array" open="(" separator="," close=")">
        #{item}
    </foreach>
</select>

List参数

//接口方法
ArrayList<User> selectByIds(List<Integer> ids);
//xml映射文件
<select id="selectByIds" 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> 

根据多条件List查询

mapper文件

<select id="selectWhere" resultMap="BaseResultMap">
    select 
     <include refid="Base_Column_List" />
    from table
     <where>
      table.a = a  and table.b in 
    <foreach collection="list" item="item" index="index" open="(" separator="," close=")">
      '${item}'
    </foreach>
    </where>
  </select>

DAO片段

List<T> selectWhere(@Param("list")List<String> list ,@Param("a") String a);

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Mybatis 条件查询 批量增删改查功能

    模糊查询: @Select({ "SELECT * FROM account where account like CONCAT('%',#{query},'%') or email like CONCAT('%',#{query},'%')" }) Account findAccountByAccountOrMail(@Param("query") String query); 批量添加: @Insert({ "<script>"

  • 详解MyBatis直接执行SQL查询及数据批量插入

    一.直接执行SQL查询: 1.mappers文件节选 <resultMap id="AcModelResultMap" type="com.izumi.InstanceModel"> <result column="instanceid" property="instanceID" jdbcType="VARCHAR" /> <result column="insta

  • Mybatis查询多条记录并返回List集合的方法

    实体对象如下: /** 使用lobmok插件 */ @Getter @Setter @NoArgsConstructor @ToString @EqualsAndHashCode public class Vendor { private String vend_id; private String vend_name; private String vend_address; private String vend_city; private String vend_state; privat

  • Mybatis如何根据List批量查询List结果

    目录 根据List批量查询List结果 mapper接口 mapper.xml文件 根据多条件List查询 mapper文件 DAO片段 根据List批量查询List结果 mapper接口 /**  * 根据剧典id list查询剧典  */ public List<Drama> selectByIds(@Param("dramaIds")List<Long> dramaIds); mapper.xml文件 <!-- 根据剧典id list查询剧典 --&

  • mybatis接收以逗号分隔的字符串批量查询方式

    目录 接收以逗号分隔的字符串批量查询 如何相互转换逗号分隔的字符串和List 将逗号分隔的字符串转换为List 将List转换为逗号分隔符 接收以逗号分隔的字符串批量查询 <IF test = " supplierIds !=null and supplierIds.indexOf(',') != -1  ">      AND msd.supplier_id NOT IN      <foreach collection = "supplierIds.sp

  • MyBatis 实现数据的批量新增和删除的操作

    在项目的开发中,我们经常需要对数据进行批量的操作,如:批量新增.批量删除等.下面将介绍MyBatis如何实现数据的批量新增和删除操作. 创建UserMapper接口(用户信息Mapper动态代理接口),实现用户信息的批量新增.批量删除.批量查询. package com.pjb.mapper; import com.pjb.entity.UserInfo; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.

  • MyBatis使用Map与模糊查询的方法示例

    当我们的实体类.或者数据库里的表.字段或者参数很多,这个时候考虑使用map 一.使用map传参插入数据 1.编写Dao接口/Mapper层 使用Map做参数 //Dao接口/Mapper层 使用Map传参 int addUser2(Map<String,Object> map); 2.编写Mapper.xml中的sql语句 <!-- 传递map的key--> <insert id="addUser2" parameterType="map&quo

  • Mybatis Plus select 实现只查询部分字段

    目录 Mybatis Plus select 查询部分字段 select 设置查询字段 MyBatis-Plus之select.delete 一.Mybatis-Plus之查询操作 1.查询操作常用API 2.分页查询 二.Mybatis-Plus之删除操作 1.物理删除操作常用API 2.逻辑删除 Mybatis Plus select 查询部分字段 Mybatis Plus select语句默认查询所有字段,如需要指定字段查询,则需使用 QueryWrapper的select方法. sele

  • Mybatis的update更新批量与普通解决方式对比

    目录 需求前提: 1.第一种:应该是效率最低的更新 2.通过批量更新 xml改造 注意事项:使用set导致逗号出现的问题 < trim>节点标签解读: 需求前提: 通过其他库里面查询出一条数据,并且对另外一个库中的oederId进行更新里面的内容注意:使用批量update时连接数据库的语句需要添加allowMultiQueries=true jdbc:mysql://127.0.0.1:3306/tb?useUnicode=true&characterEncoding=utf-8&am

  • Mybatis动态SQL foreach批量操作方法

    目录 动态SQL Foreach批量操作 前言 前置必要知识 MySQL批量插入 MySQL批量查询 MySQL批量修改 MySQL批量删除 使用mybatis中的foreach进行批量操作 foreach标签的各个属性 批量插入 批量查询 批量修改 批量删除 总结 动态SQL Foreach批量操作 前言 最近正在研究Mybatis的动态SQL,正好学习到了foreach元素.之前也是在项目开发中经常会使用到Mybatis的foreach元素进行批量操作.但是有时候就会使用出错,所以整理和总结

  • Mybatis中的like模糊查询功能

    1.  参数中直接加入%% param.setUsername("%CD%"); param.setPassword("%11%"); <select id="selectPersons" resultType="person" parameterType="person"> select id,sex,age,username,password from person where true &

  • 用NodeJS实现批量查询地理位置的经纬度接口

    实现步骤 1. 查询接口 网站上这种类型的接口还不少,笔者直接找了百度地图的接口做,接口文档,调用的API是Geocoding API中的地理编码服务 请求示例:对北京市百度大厦进行地理编码查询 http://api.map.baidu.com/geocoder/v2/?ak=E4805d16520de693a3fe707cdc962045&callback=renderOption&output=json&address=百度大厦&city=北京市 这里面需要一个ak参数

  • 基于mybatis高级映射多对多查询的实现

    1.同以前一样,首先给一个使用多对多的需求, 要查询用户以及用户所购买的商品信息,经过分析用户和商品数据库级别没有任何关系,用户和商品需要建立关系,要通过订单,订单明细建立关系.根据这个需求,可以分析出需要查询的主表为: 查询主表:用户表 查询关联表:由于商品和用户没有关系,通过订单和订单明细进行关联,所以得出关联表是:orders订单表,orderDetail订单明细表,items商品表.这样的话,sql该如何去写?这样写: select orders.*, t_user.id user_id

随机推荐