@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管理

最新文章

  1. IEE重建表完全释放磁盘空间具体步骤参考
  2. Attendance
  3. MICAPS二次开发一些功能调用
  4. Redis(一)基础
  5. 使用powershell部署WSP包
  6. 误删dpkg的/var/lib/dpkg/info文件夹的解决办法 zhuan
  7. MYSQL数据库性能调优之五:解决慢查询--存储引擎与数据类型
  8. WampServer修改端口及菜单Localhost
  9. Delphi通过调用COM对象实现更改桌面壁纸
  10. CSS的W3C标准的盒子模型和低版本IE浏览器的盒子模型
  11. vlan 以及 Linux实现的IEEE 802.1Q VLAN
  12. 去掉word中向下的箭头^l-----&gt;^p
  13. robotium和appium的一些区别
  14. 关于Java的发展前景
  15. mybatis批量修改
  16. Drupal7.8的安装注意的问题
  17. strcmp()字符串比较函数用法
  18. Vue.js用脚手架创建项目
  19. HTML表格与表单复习
  20. iOS-Socket编程体验

热门文章

  1. 基于node的tcp客户端和服务端的简单通信
  2. base家族在线解密工具
  3. DBCHM -最简单、最实用的数据库文档生成工具
  4. 来宾账户被视为安全威胁,Windows Server 2012 R2禁用Guest账户
  5. Qt:QByteArray
  6. 详解pandas的read_csv方法
  7. linux多进/线程编程(3)——wait、waitpid函数和孤儿、僵尸进程
  8. 实用TCP协议(2):TCP 参数优化
  9. 使用 kubebuilder 创建并部署 k8s-operator
  10. 『德不孤』Pytest框架 — 11、Pytest中Fixture装饰器(一)