方法一:忽略parameterType,加@param("xxx")注解

在mapper接口中加上@param("xxx")注解,则在配置文件中直接用即可

List<Map<String, Object>> getDataByTime(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("platformId") Long platformId);
<select id="getDataByTime" resultType="java.util.Map">
SELECT
t.seller_id as sellerId,
sum(t.payment_price) as total,
FROM
trade_orders t
WHERE
AND
t.platform_id = #{platformId}
<if test="startTime != null and startTime != ''">
AND
<![CDATA[t.order_time >= #{startTime}]]>
</if>
<if test="endTime != null and endTime != ''">
AND
<![CDATA[t.order_time <= #{endTime}]]>
</if>
GROUP BY
t.seller_id
</select>

方法二:忽略parameterType,不加@param("xxx")注解

用#{index},是第几个就用第几个的索引,索引从0开始

List<Map<String, Object>> getDataByTime(String startTime, String endTime, Long platformId);
<select id="getDataByTime" resultType="java.util.Map">
SELECT
t.seller_id as sellerId,
sum(t.payment_price) as total,
FROM
trade_orders t
WHERE
AND
t.platform_id = #{3}
<if test="startTime != null and startTime != ''">
AND
<![CDATA[t.order_time >= #{0}]]>
</if>
<if test="endTime != null and endTime != ''">
AND
<![CDATA[t.order_time <= #{1}]]>
</if>
GROUP BY
t.seller_id
</select>

方法三:使用Map封装参数,parameterType=“hashmap”

封装好后,直接在配置文件引用#{key}即可

List<Map<String, Object>> getDataByTime(HashMap map);
<select id="getDataByTime" parameterType="hashmap" resultType="java.util.Map">
SELECT
t.seller_id as sellerId,
sum(t.payment_price) as total,
FROM
trade_orders t
WHERE
AND
t.platform_id = #{platformId}
<if test="startTime != null and startTime != ''">
AND
<![CDATA[t.order_time >= #{startTime}]]>
</if>
<if test="endTime != null and endTime != ''">
AND
<![CDATA[t.order_time <= #{endTime}]]>
</if>
GROUP BY
t.seller_id
</select>

方法四:使用List封装参数

mapper配置文件使用foreach标签循环list

List<Map<String, Object>> getDataByTime(List<String> list);
<select id="getXXXBeanList" resultType="java.util.Map">
  select XX from trade_orders where id in
  <foreach item="item" index="index" collection="list" open="(" separator="," close=")">
    #{item}
  </foreach>
</select>

mybatis中mapper接口的参数设置几种方法的更多相关文章

  1. MyBatis 中 Mapper 接口的使用原理

    MyBatis 中 Mapper 接口的使用原理 MyBatis 3 推荐使用 Mapper 接口的方式来执行 xml 配置中的 SQL,用起来很方便,也很灵活.在方便之余,想了解一下这是如何实现的, ...

  2. 【Mybatis】Mapper接口的参数处理过程

    下面是一个简单的Mapper接口调用,首先同个session的getMapper方法获取Mapper的代理对象,然后通过代理对象去调用Mapper接口的方法 EmployeeMapper mapper ...

  3. MyBatis 中传递多个参数的 4 种方式

    方式 1 :封装成对象入参  #{对应实体类的属性} //UserMapper.java 接口 /** * 多条件查询:根据用户名称(模糊查询)和用户角色查询用户列表(参数:对象入参) * @para ...

  4. 逆向工程生成的mybatis中mapper文件。mapper接口,实例化成对象

    逆向工程生成的mybatis中mapper文件中,*mapper文件只是接口,而不是类文件.但是却可以通过spring的容器获得实例. 例如: //1.获得mapper代理对象,从spring容器获得 ...

  5. Mybatis的Mapper接口方法不能重载

    今天给项目的数据字典查询添加通用方法,发现里边已经有了一个查询所有数据字典的方法 List<Dict> selectDictList(); 但我想设置的方法是根据数据字典的code查询出所 ...

  6. Direcshow中视频捕捉和参数设置报告

    Direcshow中视频捕捉和参数设置报告 1.      关于视频捕捉(About Video Capture in Dshow) 1视频捕捉Graph的构建 一个能够捕捉音频或者视频的graph图 ...

  7. mybatis从mapper接口跳转到相应的xml文件的eclipse插件

    mybatis从mapper接口跳转到相应的xml文件的eclipse插件 前提条件 开发软件 eclipse 使用框架 mybatis 为了方便阅读源码,项目使用mybatis的时候,方便从mapp ...

  8. 5.7 Liquibase:与具体数据库独立的追踪、管理和应用数据库Scheme变化的工具。-mybatis-generator将数据库表反向生成对应的实体类及基于mybatis的mapper接口和xml映射文件(类似代码生成器)

    一. liquibase 使用说明 功能概述:通过xml文件规范化维护数据库表结构及初始化数据. 1.配置不同环境下的数据库信息 (1)创建不同环境的数据库. (2)在resource/liquiba ...

  9. IntelliJ IDEA中Mapper接口通过@Autowired注入报错的正确解决方式

    转载请注明来源:四个空格 » IntelliJ IDEA中Mapper接口通过@Autowired注入报错的正确解决方式: 环境 ideaIU-2018.3.4.win: 错误提示: Could no ...

随机推荐

  1. mac pro换屏指南

    https://www.ifixit.com/ 该网站提供了 换屏的详细操作步骤.

  2. 谷歌AM HTML视频代码amp-video示例

    ntroduction Use amp-video to embed videos into your AMP HTML files. Video source files must be serve ...

  3. java 写一个JSON解析的工具类

    上面是一个标准的json的响应内容截图,第一个红圈”per_page”是一个json对象,我们可以根据”per_page”来找到对应值是3,而第二个红圈“data”是一个JSON数组,而不是对象,不能 ...

  4. Windows 10安装Docker 步骤及顺序

    最近在工作中,重新安装Docker时,遇到了一点坑,故将自己解决经验分享一下~ Hardware assisted virtualization and data execution protecti ...

  5. Python3.0科学计算学习之函数

    函数 函数允许程序的控制在不同的代码片段之间切换,函数的重要意义在于可以在程序中清晰地分离不同的任务,将复杂的问题分解为几个相对简单的子问题,并逐个解决.即"分而治之". Pyth ...

  6. C语言中格式字符串

    C语言中格式字符串的一般形式为: %[标志][输出最小宽度][.精度][长度]类型, 其中方括号[]中的项为可选项. 一.类型 我们用一定的字符用以表示输出数据的类型,其格式符和意义下表所示: 字符  ...

  7. PHP----------PHP自身的性能优化注意事项

    1.如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍. 2.$row[’id’] 的速度是$row[id]的7倍. 3.echo 比 print 快,并且使用ech ...

  8. 简介一下 i++和++i&&i=i+i,i+=1;的区别

    首先: int i=2; i++=2; ++i=3; 前者先显示当前的值,而后者则是先自增在显示值: second i=i+1和i+=1; 输出结果虽然一样,但是 1.byte i=2; i+=2; ...

  9. idea (2018.09) 安装破解mybatis plugin

    本来打算安装的是mybatis plugin最新版本(4.0.4) 但是安装下来发现lib目录中少mybatis_plugin.jar包 只有手动安装了这里安装的是2.9.2版本使用了一下不受影响 破 ...

  10. django--如何将数据结果集序列化传给前端页面展示

    示例为一对多的表关系,学生为多,老师为一,设置外键字段可以为空,也就是说关联的老师被删除该学生依然存在,只是相应字段留空 class Teacher(models.Model): name = mod ...