已注册域名怎么做网站呢,应用镜像 wordpress,网络服务提供者发现未成年人,如何自己建立网站建设一、MyBatis 参数绑定机制
1.1 核心概念
当 Mapper 接口方法接收多个参数时#xff0c;MyBatis 提供三种参数绑定方式#xff1a;
默认参数名#xff1a;arg0、arg1#xff08;Java 8#xff09;或 param1、param2Param 注解#xff1a;显式指定参数名称POJO/DTO 对象…一、MyBatis 参数绑定机制
1.1 核心概念
当 Mapper 接口方法接收多个参数时MyBatis 提供三种参数绑定方式
默认参数名arg0、arg1Java 8或 param1、param2Param 注解显式指定参数名称POJO/DTO 对象通过对象属性访问本教程不涉及 二、arg 参数参数顺序索引
2.1 使用场景
适用于没有使用 Param 注解的情况通过参数在方法中的顺序位置进行绑定。
2.2 XML 映射示例
select idfindBySalary2 resultTypeEmpSELECT * FROM emp WHERE salary #{arg0} AND salary #{arg1}
/select
2.3 Java 接口定义
ListEmp findBySalary2(Double start, Double end);2.4 特点
索引从 0 开始参数顺序敏感调换参数顺序会导致逻辑错误可读性较低推荐在参数较少时使用 三、param 参数自动编号索引
3.1 使用场景
MyBatis 为每个参数自动生成的别名编号从 1 开始。
3.2 XML 映射示例
select idfindBySalary1 resultTypeEmpSELECT * FROM emp WHERE salary #{param1} AND salary #{param2}
/select
3.3 Java 接口定义
ListEmp findBySalary1(Double start, Double end);3.4 特点
索引从 1 开始与 arg 索引共存可用两种方式交叉访问适用于需要明确位置编号的场景 四、Param 注解显式命名参数
4.1 使用场景
当需要明确参数语义或方法有多个参数时推荐使用。
4.2 XML 映射示例
select idfindBySalary3 resultTypeEmpSELECT * FROM emp WHERE salary #{minSalary} AND salary #{maxSalary}
/select
4.3 Java 接口定义
ListEmp findBySalary3(Param(minSalary) Double start, Param(maxSalary) Double end
);4.4 特点
参数名与业务语义强关联不依赖参数顺序代码可维护性最佳支持与 param/arg 方式混用 五、对比总结
方式索引起点顺序敏感性可读性推荐场景arg0, arg10高差简单查询参数2param1, param21高中需要明确编号的场景Param自定义无优多参数/复杂业务场景 六、综合使用示例
6.1 混合使用场景
select idfindComplex resultTypeEmpSELECT * FROM emp WHERE salary #{min} AND salary #{param2} AND name LIKE #{arg2}
/select
6.2 对应接口
ListEmp findComplex(Param(min) Double minSalary,Double maxSalary, String nameKeyword
);七、最佳实践建议
参数超过 2 个时必须使用 Param 注解涉及范围查询建议使用 Param 明确参数语义维护性考量优先选用 Param 方式版本兼容性注意不同 MyBatis 版本对默认别名的支持差异