mybatis中mapper接口的参数设置几种方法
方法一:忽略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接口的参数设置几种方法的更多相关文章
- MyBatis 中 Mapper 接口的使用原理
MyBatis 中 Mapper 接口的使用原理 MyBatis 3 推荐使用 Mapper 接口的方式来执行 xml 配置中的 SQL,用起来很方便,也很灵活.在方便之余,想了解一下这是如何实现的, ...
- 【Mybatis】Mapper接口的参数处理过程
下面是一个简单的Mapper接口调用,首先同个session的getMapper方法获取Mapper的代理对象,然后通过代理对象去调用Mapper接口的方法 EmployeeMapper mapper ...
- MyBatis 中传递多个参数的 4 种方式
方式 1 :封装成对象入参 #{对应实体类的属性} //UserMapper.java 接口 /** * 多条件查询:根据用户名称(模糊查询)和用户角色查询用户列表(参数:对象入参) * @para ...
- 逆向工程生成的mybatis中mapper文件。mapper接口,实例化成对象
逆向工程生成的mybatis中mapper文件中,*mapper文件只是接口,而不是类文件.但是却可以通过spring的容器获得实例. 例如: //1.获得mapper代理对象,从spring容器获得 ...
- Mybatis的Mapper接口方法不能重载
今天给项目的数据字典查询添加通用方法,发现里边已经有了一个查询所有数据字典的方法 List<Dict> selectDictList(); 但我想设置的方法是根据数据字典的code查询出所 ...
- Direcshow中视频捕捉和参数设置报告
Direcshow中视频捕捉和参数设置报告 1. 关于视频捕捉(About Video Capture in Dshow) 1视频捕捉Graph的构建 一个能够捕捉音频或者视频的graph图 ...
- mybatis从mapper接口跳转到相应的xml文件的eclipse插件
mybatis从mapper接口跳转到相应的xml文件的eclipse插件 前提条件 开发软件 eclipse 使用框架 mybatis 为了方便阅读源码,项目使用mybatis的时候,方便从mapp ...
- 5.7 Liquibase:与具体数据库独立的追踪、管理和应用数据库Scheme变化的工具。-mybatis-generator将数据库表反向生成对应的实体类及基于mybatis的mapper接口和xml映射文件(类似代码生成器)
一. liquibase 使用说明 功能概述:通过xml文件规范化维护数据库表结构及初始化数据. 1.配置不同环境下的数据库信息 (1)创建不同环境的数据库. (2)在resource/liquiba ...
- IntelliJ IDEA中Mapper接口通过@Autowired注入报错的正确解决方式
转载请注明来源:四个空格 » IntelliJ IDEA中Mapper接口通过@Autowired注入报错的正确解决方式: 环境 ideaIU-2018.3.4.win: 错误提示: Could no ...
随机推荐
- .Net Core知识点
1:const,readonly,和get访问器,三者都可在自己的生命域里赋值,但是编译器也是可以在构造函数里进行初始化赋值的 2:Debugger.IsAttached 属性 http://msdn ...
- C#递归复习
static void Main(string[] args) { Console.WriteLine("请输入你要的数字:"); long flag = Convert.To ...
- MySQL数据库常用命令和概念 (1)
一.数据库的创建: 1.创建一个名称为mydb1的数据库 create database mydb1; 2.创建一个使用utf8字符集的mydb2数据库. create database mydb2 ...
- 三目运算符与Scanner类
1.三目运算符(条件运算符)格式:X ? Y : ZX表达式必须是boolean类型 的表达式执行流程:首先计算X表达式的结果,如果X的结果为true,那么整个表达式的结果就是Y的值如果X的结果为tr ...
- selenium--键盘事件
from selenium import webdriver from selenium.webdriver.common.keys import Keys driver = webdriver.Fi ...
- debug apk logCat
Microsoft Windows [版本 10.0.15063](c) 2017 Microsoft Corporation.保留所有权利. C:\Users\Administrator>ad ...
- 软件测试之Soot
详情请见:https://github.com/fogmisty/SoftwareTest
- [Chrome] chrome 自动跳转到https
关键字眼: - static_upgrade_mode: FORCE_HTTPS - You cannot visit www.xxx.dev right now because the websit ...
- CentOS 7 Squid代理服务器正向代理-传统代理
Squid是Linux系统中最常用的一款开源代理服务软件,主要提供缓存加速和应用层过滤控制的功能,可以很好的实现HTTP.FTP.DNS查询以及SSL等应用的缓存代理 传统代理:普通的代理服务,多见于 ...
- php 中 global 与 $GLOBAL 的区别
很多人都认为global和$GLOBALS[]只是写法上面的差别,其实不然. 根据官方的解释是$GLOBALS['var'] 是外部的全局变量$var本身. global $var 是外部$var的同 ...