@Param

1.如果dao方法中只有一个参数,入参可以为#{0}或者#{任意单词},也可以使用@Param指定参数名称,sql中就只能#{指定名称}获取参数

public List<Region> selectRegion(String region_code);
<select id="selectRegion" resultType="java.util.Map">
select
id,
create_time,
update_time,
isvalid,
region_code,
parent_region_code,
name,
region_path,
region_level,
sort,
geometry
from region_info
where 1=1
<if test = "region_code != null">
AND region_code = #{0}
</if>
</select>
<select id="selectRegion" resultType="java.util.Map">
select
id,
create_time,
update_time,
isvalid,
region_code,
parent_region_code,
name,
region_path,
region_level,
sort,
geometry
from region_info
where region_code = #{aaa}
</select>

2.如果dao方法中有多个参数,可以使用@Param指定参数名称,sql中必须使用指定的参数名称作为入参#{指定名称}

public List<Region> selectAllRegion(@Param("region_code")String region_code,@Param("name")String name);
<select id="selectAllRegion" resultType="java.util.Map">
select
id,
create_time,
update_time,
isvalid,
region_code,
parent_region_code,
name,
region_path,
region_level,
sort,
geometry
from
region_info
where 1=1
<if test="region_code != null">
AND region_code = #{region_code}
</if>
<if test="name != null">
AND name like '%' || #{name} || '%'
</if>
</select>

假如我们不使用@Param指定名称,sql中可以使用#{arg0},#{arg1}...这种形式匹配对应入参

public List<Region> selectAllRegion(String region_code,String name);
<select id="selectAllRegion" resultType="java.util.Map">
select
id,
create_time,
update_time,
isvalid,
region_code,
parent_region_code,
name,
region_path,
region_level,
sort,
geometry
from
region_info
where 1=1
AND region_code = #{arg0}
AND name like '%' || #{arg1} || '% '
</select>

总结:尽量使用@Param方式指定传参

@Mapper

将dao类划归spring管理

@Param注解和@Mapper注解的更多相关文章

  1. 详解 @MapperScan 注解和 @Mapper 注解

    实际上,这是一个非常简单的问题.我并没有一口回绝他,让他去百度.因为,新人都会经历这个过程.好不容易,问你一次,你直接让他百度,会打击到他的.而且,别人会觉得你摆架子. @Mapper 这个注解的定义 ...

  2. @Repository注解和@Mapper注解区别

    @Reponsitory注解 @Reponsitory使用后,在启动类上需要添加@MapperScan("xxx.xxx.xxx.mapper")注解 @Mapper注解 @Map ...

  3. MyBatis中的@Mapper注解及配套注解使用详解(上)

    前言: 从mybatis3.4.0开始加入了@Mapper注解,目的就是为了不再写mapper映射文件(那个xml写的是真的蛋疼...).很恶心的一个事实是源码中并没有对于这个注解的详细解释 现在我们 ...

  4. 我为什么放弃使用MyBatis3的Mapper注解

    最近在使用MyBatis3做项目.在使用注解实现Mapper的时候遇到了比较奇葩的问题:在实现数据的batch insert的时候总是报错.好不容易可以正常插入了,但是又不能返回自增的主键id到实体b ...

  5. MyBatis中的@Mapper注解 @Mappe与@MapperScan关系

    从mybatis3.4.0开始加入了@Mapper注解,目的就是为了不再写mapper映射文件 现在项目中的配置 public interface DemoMapper{ int deleteByPr ...

  6. 我为什么放弃使用mybatis3的mapper注解了

    原文链接 最近在使用MyBatis3做项目.在使用注解实现Mapper的时候遇到了比较奇葩的问题:在实现数据的batch insert的时候总是报错.好不容易可以正常插入了,但是又不能返回自增的主键i ...

  7. @Mapper注解在springboot中无法注入

    问题① @Mapper注解报红无法注入 方法 在pom文件中添加依赖

  8. SPRINGBOOT配置事物注解和@MAPPER注意

    MAPPER接口要使用@Mapper注解,不能用@Compent @Repository,否则没有效果 一.开启事物 在启动类上加 @EnableTransactionManagement //如果m ...

  9. Mapper注解与MapperScan注解

    1.Mapper注解 在接口类上添加@Mapper,在运行时动态代理生成实现类 @Mapper public interface UserDao { // User getUser(); } 如果想要 ...

随机推荐

  1. prometheus监控java项目(jvm等):k8s外、k8s内

    前言 虽然可以使用jvisualvm之类的工具监控java项目,但是集群环境下,还是捉襟见肘,下面介绍如何用主流的prometheus来监控java项目. java项目配置 在pom.xml中添加依赖 ...

  2. css文字超出指定行数显示省略号

    display: -webkit-box; overflow: hidden; word-break: break-all; /* break-all(允许在单词内换行.) */ text-overf ...

  3. kali系统语言设置

    一.背景信息在安装完 kali linux 2020.1 时,其操作系统默认语言为英文的,我们操作起来比较麻烦,为了以后操作方便起见,这边将其操作系统默认语言更改为中文.本篇文章将带领各位小伙伴们一起 ...

  4. BI工具有多重要?凭什么得到各类企业的热烈追捧?

    近年来,应用BI工具的企业越来越多,企业对BI工具的重视说明企业了解.认识到了数据的价值.数据分析工具已经渐渐成为企业日常经营管理活动中不可或缺的一项重要工作内容.但是你知道企业应该如何挑选BI工具吗 ...

  5. 获明略科技B+轮战略投资,思迈特软件Smartbi用强产品思维推动BI生态完善

    今天,商业智能BI和大数据分析产品提供商思迈特软件(Smartbi)宣布完成亿级B+轮战略融资,本轮投资方为领先的全球企业级数据分析和组织智能服务平台提供商--明略科技. 此前,思迈特软件曾先后获得来 ...

  6. [入门到吐槽系列] 微信小程序 敏感违规图片检测 mediaCheckAsync,客服接口 消息推送 的各种坑分享!

    前言: 最近需要做个用户上传图片,服务端校验图片问题的需求.需要使用小程序消息推送,异步接受腾讯的图片验证回调.实在太多坑了. 相信10分钟看完本文的朋友,可以非常顺利避坑. 前期准备: 首先需要一个 ...

  7. 一个C#程序的执行过程

    可能很多人都知道我们把程序打包成dll就丢出去了,但是里面的具体的执行过程是怎么样的呢. 程序集是由元数据和IL组成的.IL是和CPU无关的语言,是微软的几个专家请教了外面的编译器的作则,开发出来的. ...

  8. 基于COCO数据集验证的目标检测算法天梯排行榜

    基于COCO数据集验证的目标检测算法天梯排行榜 AP50 Rank Model box AP AP50 Paper Code Result Year Tags 1 SwinV2-G (HTC++) 6 ...

  9. 《破碎的残阳,我们逆光》连载小说- HashMap剖析

    破碎的残阳,我们逆光[连载小说]- HashMap剖析 "行到水穷处,坐看云起时"        前言: 偶尔翻阅了自己当时高中时代写的日志,发现了几篇自己多年未打开的自写小说草本 ...

  10. iOS实现组件录屏视频不可见,用户肉眼可见(类似系统键盘效果)

    系统键盘在密码框输入时,如果用户开启录屏,键盘在录屏得到的视频里会不可见,但是用户在录屏时却能看到. 为了实现这个效果,利用UItextfield在录屏下视频不可见的特性,将实现这一效果的私有UIvi ...