mybatis配置文件查询参数的传递
通常来说,参数传递可以使用#与$进行编写,但是使用#的效率更高,使用$方式,查看日志更方便些,尤其是当执行的sql语句非常麻烦的时候.
1) 接口 形式 以下方式 [传递参数是一个实体]
public List<Attachment> getAttachment(Attachment query);
xml文件配置如下
<select id="getAttachment" resultMap="baseMap">
SELECT
<include refid="columns"/>
FROM
T_OA_ATTACH atta
WHERE 1 = 1
<if test="name != null and name !='' ">
AND atta.NAME like '%'||#{name,jdbcType=VARCHAR}||'%'
</if>
<if test="type != null and type !='' ">
AND atta.TYPE = #{type,jdbcType=VARCHAR}
</if>
<if test="path != null and path !='' ">
AND atta.PATH = #{path,jdbcType=VARCHAR}
</if>
<if test="createUser != null and createUser !='' ">
AND atta.CREATE_BY = #{createUser,jdbcType=BIGINT}
</if>
</select>
2) 接口形如以下方式 [传递参数是基本类型数据]
@Update("UPDATE T_OA_ATTACH SET STATUS = '0' WHERE ID = #{id} ")
public int delAttachment(@Param("id") Long id);
上面为annotation配置方式
xml配置如下,其中,使用$的时候,控制台打印的sql语句,语句不会使用?作为占位符
<if test="id!= null and id!='' ">
AND atta.id= #{id,jdbcType=BIGINT}
</if> 或者如下
<if test="id!= null and id!='' ">
AND atta.id= ${id}
</if>
2) 接口形如以下方式 [传递参数是基本类型数据 和 对象]
public List<MyScheduling> getMyWapScheduling(@Param("curUserId")Long currentUserId,@Param("queryDayFirst")String dayFirst,@Param("query")MyScheduling query);
此时,需要使用@Param修饰参数变量,同时,对象中的参数,需要使用对象值进行前缀引导,否则绑定不了变量
and d.period_rq between to_date('${queryDayFirst}', 'yyyymmdd') and last_day(to_date('${queryDayFirst}', 'yyyymmdd'))
<if test="query.pId != null and query.pId !='' ">
and a2.p_id = #{query.pId,jdbcType=BIGINT}
</if>
mybatis配置文件查询参数的传递的更多相关文章
- mybatis中String参数的传递
mybatis中String参数的传递 Keywords selectKeywords(@Param("key") String key); 可以在mapper方法的参数钱添加 @ ...
- mybatis父查询值嵌套传递/column传入多个参数值
mybatis中collection的column传入多个参数值(使用父查询的映射值) property description column 数据库的列名或者列标签别名.与传递给resultSet. ...
- FeignClient调用POST请求时查询参数被丢失的情况分析与处理
前言 本文没有详细介绍 FeignClient 的知识点,网上有很多优秀的文章介绍了 FeignCient 的知识点,在这里本人就不重复了,只是专注在这个问题点上. 查询参数丢失场景 业务描述: 业务 ...
- MyBatis(二):Select语句传递参数的集中方案
从别人说的方案中看出,传递参数方案还挺多,不如自己整理下,以便以后使用过程中有个笔记回忆录. 1.传递一个参数的用法: 配置文件 <select id="getById" r ...
- 在MyBatis中查询数据、涉及多参数的数据访问操作、插入数据时获取数据自增长的id、关联表查询操作、动态SQL、关于配置MyBatis映射没有代码提示的解决方案
1. 单元测试 在单元测试中,每个测试方法都需要执行相同的前置代码和后置代码,则可以自定义2个方法,分别在这2个方法中执行前置代码和后置代码,并为这2个方法添加@Before和@After注解,然后, ...
- MyBatis基础入门《八》查询参数传入Map
MyBatis基础入门<八>查询参数传入Map 描述: 在执行select查询数据的时候,方法传入的参数是java.util.Map类型. 接口方法: xml文件 注意: 书写SQL语句的 ...
- MyBatis基础入门《七》查询参数传入对象
MyBatis基础入门<七>查询参数传入对象 描述: 在执行查询语句的时候,传入的参数是一个对象,依据对象的属性,进行检索数据.此时,书写SQL语句中的条件时,其参数需要和对象中的属性保持 ...
- mybatis interceptor 处理查询参数及查询结果
拦截器:拦截update,query方法,处理查询参数及返回结果. /** * Created by windwant on 2017/1/12. */ @Intercepts({ @Signatur ...
- mybatis报表,动态列与查询参数+行列转换
这是报表原型,在这张报表中,使用了动态的列与动态查询参数,动态列与动态查询参数全部使用map将参数传入 map参数: //拼接查询时间 for (String month : monthList) { ...
随机推荐
- MVC5+EF6 入门完整教程四
上篇文章主要讲了如何配置EF, 我们回顾下主要过程: 创建Data Model à 创建Database Context à创建databaseInitializerà配置entityFramewor ...
- Android-内存泄漏
单例造成的内存泄漏 单例模式非常受开发者的喜爱,不过使用的不恰当的话也会造成内存泄漏,由于单例的静态特性使得单例的生命周期和应用的生命周期一样长,这就说明了如果一个对象已经不需要使用了,而单例对象 ...
- Ionic 的 ng-class 在聊天功能上面的巧妙运用
很多人在问我是ionic好呢?还是react好呢? 其实我只想告诉你去看文档啊,不用用怎么知道哪个合适呢? 嘿嘿但是真的这么问的时候我也不会这么回答的,那岂不是太张狂了哈哈哈 react我确实没有用过 ...
- JAVA数据转换常用方法
时间格式化与运算 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar=sdf. ...
- MINA2 框架详解(转)
Apache Mina Server 是一个网络通信应用框架,也就是说,它主要是对基于TCP/IP.UDP/IP协议栈的通信框架(当然,也可以提供JAVA 对象的序列化服务.虚拟机管道通信服务等),M ...
- 自制c#简易计算器
这是一个课堂作业,我觉得作为一个简易的计算器不需要态度复杂的东西,可能还有一些bug,有空再慢慢加强. using System;using System.Collections.Generic;us ...
- js中Array的一些扩展
IE下很多Array的方法都不被支持.每次都要写.所以记下来,以免忘记: 以下是对Array的一些扩展,在FF ,google 下是不需要加的. /** * 方法Array.filter(functi ...
- C# Request中修改header信息
var headers = app.Context.Request.Headers; Type hdr = headers.GetType(); PropertyInfo ro = hdr.GetPr ...
- 解决php文件乱码
header ( "Content-Type:text/html;charset=utf-8" );//定义文件为UTF-8编码
- SpringMVC 视图和视图解析器&表单标签
视图和视图解析器 请求处理方法执行完成后,最终返回一个 ModelAndView 对象.对于那些返回 String,View 或 ModeMap 等类型的处理方法,Spring MVC 也会在内部将它 ...