Mybatis处理List参数

简介: Mybatis处理List参数

前言:

本篇博客仅仅作为笔录,避免每次网络搜索

前期准备:

  1. sql :
    CREATE TABLE tb_student (

id int(11) NOT NULL AUTO_INCREMENT,

name varchar(255) COLLATE utf8_bin NOT NULL,

age int(11) NOT NULL,

PRIMARY KEY (id)

) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8 COLLATE=utf8_bin ROW_FORMAT=DYNAMIC;

INSERT INTO work.tb_student (id, name, age) VALUES (‘25’, ’ Ben ', ‘23’);

INSERT INTO work.tb_student (id, name, age) VALUES (‘26’, ‘Jack’, ‘24’);

INSERT INTO work.tb_student (id, name, age) VALUES (‘27’, ‘Tom’, ‘24’);

INSERT INTO work.tb_student (id, name, age) VALUES (‘28’, ‘Jerry’, ‘19’);

INSERT INTO work.tb_student (id, name, age) VALUES (‘29’, ‘Lilian’, ‘18’);

2.实体类 StudentInfo:

public class StudentInfo {

private Integer id;
private String name;
private Integer age;
// 省略 get、set 方法
  1. }

示例:

  1. 通过 两种不同数据类型的List 不同查询:

StudentDao :

/**
     * 通过年龄和名称查询结果
     * @param ages
     * @param name
     * @return
     */
    List<StudentInfo> getListByAgesAndName(@Param("ages") List<Integer> ages, @Param("name") String name);
  /**
     * 通过年龄【实体中获取】和名称查询结果
     * @param studentInfos
     * @param name
     * @return
     */
    List<StudentInfo> getListByStudentInfoAndName(@Param("studentInfos") List<StudentInfo> studentInfos, @Param("name") String name);

StudentMapper.xml

<!-- 通过年龄和名称查询结果 -->
    <select id="getListByAgesAndName"  resultType="com.morning.all.entity.StudentInfo">
        select * from  tb_student
        where name like CONCAT('%',#{name},'%')
        and age in
        <foreach collection="ages" item="age" index="index" open="(" close=")" separator=",">
            #{age}
        </foreach>
    </select>
    <!-- 通过年龄【实体中获取】和名称查询结果 -->
    <select id="getListByStudentInfoAndName"  resultType="com.morning.all.entity.StudentInfo">
        select * from  tb_student
        where name like CONCAT('%',#{name},'%')
        and age in
        <foreach collection="studentInfos" item="studentInfo" index="index" open="(" close=")" separator=",">
            #{studentInfo.age}
        </foreach>
    </select>

以上就是关于Mybatis List传参以及使用!

相关文章
|
6月前
|
SQL Java 数据库连接
Mybatis之核心配置文件详解、默认类型别名、Mybatis获取参数值的两种方式
【1月更文挑战第3天】 一、核心配置文件详解 二、默认的类型别名 三、MyBatis的增删改查 四、MyBatis获取参数值的两种方式 1、单个字面量类型的参数 2、多个字面量类型的参数 3、map集合类型的参数 4、实体类类型的参数 5、使用@Param标识参数
109 2
Mybatis之核心配置文件详解、默认类型别名、Mybatis获取参数值的两种方式
|
1月前
|
SQL Java 数据库连接
mybatis使用四:dao接口参数与mapper 接口中SQL的对应和对应方式的总结,MyBatis的parameterType传入参数类型
这篇文章是关于MyBatis中DAO接口参数与Mapper接口中SQL的对应关系,以及如何使用parameterType传入参数类型的详细总结。
31 10
|
2月前
|
SQL XML Java
mybatis复习02,简单的增删改查,@Param注解多个参数,resultType与resultMap的区别,#{}预编译参数
文章介绍了MyBatis的简单增删改查操作,包括创建数据表、实体类、配置文件、Mapper接口及其XML文件,并解释了`#{}`预编译参数和`@Param`注解的使用。同时,还涵盖了resultType与resultMap的区别,并提供了完整的代码实例和测试用例。
mybatis复习02,简单的增删改查,@Param注解多个参数,resultType与resultMap的区别,#{}预编译参数
|
4月前
|
Java 数据库连接 mybatis
Mybatis查询传递单个参数和传递多个参数用法
Mybatis查询传递单个参数和传递多个参数用法
65 11
|
4月前
|
SQL
自定义SQL,可以利用MyBatisPlus的Wrapper来构建复杂的Where条件,如何自定义SQL呢?利用MyBatisPlus的Wrapper来构建Wh,在mapper方法参数中用Param注
自定义SQL,可以利用MyBatisPlus的Wrapper来构建复杂的Where条件,如何自定义SQL呢?利用MyBatisPlus的Wrapper来构建Wh,在mapper方法参数中用Param注
|
5月前
|
Java 数据库连接 mybatis
mybatis参数报错Parameter ‘docId‘ not found. Available parameters are [arg1, arg0, param1, param2]
mybatis参数报错Parameter ‘docId‘ not found. Available parameters are [arg1, arg0, param1, param2]
|
6月前
|
SQL Java 数据库连接
Mybatis如何通过泛型来动态调整返回参数
Mybatis如何通过泛型来动态调整返回参数
469 0
|
6月前
|
XML Java 数据库连接
MyBatis 解决上篇的参数绑定问题以及XML方式交互
MyBatis 解决上篇的参数绑定问题以及XML方式交互
65 0
|
6月前
四种解决”Arg list too long”参数列表过长的办法
这些方法都可以帮助你避免因参数列表过长而导致的错误。选择方法取决于具体情况和需求。
249 0