MyBtias 传递各种参数【List、Map、实体、List<Map>】

news/2024/7/2 1:20:01 标签: mybatis, mybatisplus, 小道仙

个人博客地址:https://www.xdx97.com/

常见的写法都已经烂熟于心了,但是稍微复杂一点的写法,总是忘记,每次都要去百度一下,为了方便自己也方便别人就整理一下全部的写法吧

一、基本的入参和出参

1-1、单个出参和入参

TestMapper

 String testOne(@Param("id") String id);

TestMapper.xml

SELECT name FROM xdx_test WHERE id = #{id}

1-2、多个入参和出参

TestMapper

List<String> testTwo(@Param("clas") String clas,@Param("score") String score);

TestMapper.xml

<select id="testTwo" parameterType="java.lang.String" resultType="java.util.List">
    SELECT name FROM xdx_test WHERE class = #{clas} AND score = #{score}
</select>

二、实体入参出参

XdxTest

import lombok.Data;

@Data
public class XdxTest {

    private String id;

    private String name;

    private String score;
}

2-1、单个实体入参出参

TestMapper

XdxTest testThree(XdxTest xdxTest);

TestMapper.xml

<select id="testThree" parameterType="com.xdx97.test.pojo.XdxTest" resultType="com.xdx97.test.pojo.XdxTest">
    SELECT id,name FROM xdx_test WHERE id= #{id}
</select>

2-2、多个实体入参出参

TestMapper

List<XdxTest> testFour(XdxTest xdxTest);

TestMapper.xml

<select id="testFour" parameterType="com.xdx97.test.pojo.XdxTest" resultType="com.xdx97.test.pojo.XdxTest">
    SELECT id,name FROM xdx_test WHERE score = #{score}
</select>

从上面的例子我们可以得出,当我们返回List的时候,我们只需要配置List里面的实体的全限定名。


三、传入List、Map

3-1、传入单个的List

TestMapper

List<String> testFive(@Param("params") List<String> params);

TestMapper.xml

<select id="testFive" parameterType="java.util.List" resultType="java.lang.String">
    SELECT name
    FROM xdx_test
    WHERE score IN
    <foreach collection="params" index="index" item="item" open="(" close=")"  separator=",">
        #{item}
    </foreach>
</select>

3-2、传入单个的Map(其实传递Map和实体的时候用法是一样的)

TestMapper

List<String> testSix(Map<String,Object> params);

TestMapper.xml

<select id="testSix" parameterType="java.util.Map" resultType="java.lang.String">
     SELECT name
     FROM xdx_test
     WHERE score = #{score}
     AND class = #{class}
</select>

四、传入List、List<实体>

List、List<实体> 的写法十一样的,本质上 实体就是一个Map

TestMapper

List<String> testSeven(@Param("params") List<Map<String,Object>> params);

TestMapper.xml

<select id="testSeven" parameterType="java.util.Map" resultType="java.lang.String">
     SELECT name
     FROM xdx_test
     WHERE score IN
     <foreach collection="params" index="index" item="item" open="(" close=")"  separator=",">
          #{item.score}
     </foreach>
</select>

五、传递List,的同时传入其它参数

TestMapper

List<String> testSeven(@Param("params") List<Map<String,Object>> params,@Param("class") String clas);

TestMapper.xml

<select id="testSeven" parameterType="java.util.Map" resultType="java.lang.String">
    SELECT name
    FROM xdx_test
    WHERE score IN
    <foreach collection="params" index="index" item="item" open="(" close=")"  separator=",">
         #{item.score}
    </foreach>
    AND class = #{class}
</select>

http://www.niftyadmin.cn/n/774944.html

相关文章

剑指Offer-二:二叉树的深度

题目位置 https://leetcode-cn.com/problems/er-cha-shu-de-shen-du-lcof/ 题解 /*** 思路&#xff1a;* 1、便利二叉树的每一个节点&#xff0c;计算每一个节点高度* 2、用一个变量&#xff08;max&#xff09;记录最大的高度* 3、每次便利到根节点就判断当前高度和max那个…

Java基于POI实现Excel的导入导出功能【utils封装】

文章优先发表在个人公众号&#xff1a;https://www.xdx97.com/article/747444695356932096 一、代码 1-1、导入依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml-schemas</artifactId><version>4.0.0</vers…

Maven本地安装jar包

一、首先你得安装了Maven环境&#xff0c;直接cmd输入 mvn -v 查看 二、安装命令 2-1、命令分析 mvn install:install-file -Dfilexxxx jar包地址 -DgroupIdxxxx maven gruopId -DartifactIdxxxx maven artifactId -Dversion2.0 maven version -Dpacka…

SpringBoot开启事务、手动事务

文章优先发布在个人博客上面哦 https://www.xdx97.com/article/754707243290591232 一、Transactional 1-1、使用 我们只需要在类或者方法上面加上 Transactional 注解&#xff0c;即可开启事务。 1-2、Transactional的属性 属性名说明name当在配置文件中有多个 Transaction…

移动MAS发送短信,接受状态和接受回复【HTTP】

移动MAS短信平台就是一个发送短信的平台&#xff0c;可以发送普通短信、模板短信、一对一&#xff0c;一对多等短信 下面主要是基于Java&#xff08;HTTP方式&#xff09;实现短信的下行&#xff08;发送&#xff09;上行&#xff08;接受&#xff09;和接受短信状态 接口全是…

从GitLab拉取代码(不同分支拉取)

一、安装git https://blog.csdn.net/Tomwildboar/article/details/82312646 二、配置SSH https://blog.csdn.net/Tomwildboar/article/details/82313476 三、拉取代码 1、创建一个空文件夹&#xff0c;然后进去右键选择git bash输入下面的代码 git clone xxxxxxxxxx 来自下…

SpringBoot定时任务,@Async多线程异步执行

一、使用SpringBoot实现定时任务 这个不是重点&#xff0c;就简单的实现一下&#xff0c;至于cron表达式怎么写也不是重点&#xff0c;自行百度即可。 1-1、基于 Scheduled 注解的方式 import org.springframework.scheduling.annotation.EnableScheduling; import org.spring…

Sql一对多关联最新的一条数据

我们有如下表结构&#xff0c;一个是用户表&#xff0c;一个是记录表&#xff0c;一个用户会有多条记录&#xff0c;现在我们需要去查询出来每个用户的信息和最新的操作记录&#xff08;这里以id值最大为最新的&#xff09; CREATE TABLE record (id int(11) NOT NULL,u_id int…