问题分析
MyBatis-Flex 自定义查询未传递参数可能由以下原因导致:
- 参数未正确绑定到 SQL 语句
- 方法参数与 SQL 占位符名称不匹配
- 动态 SQL 条件未生效
检查参数绑定方式
确保在 XML 或注解中正确引用参数。若使用@Param注解,需在 SQL 中通过#{paramName}引用:
@Select("SELECT * FROM table WHERE column = #{paramName}") List<Entity> query(@Param("paramName") String param);若未使用@Param,则需通过#{arg0}、#{arg1}按顺序引用:
@Select("SELECT * FROM table WHERE column = #{arg0}") List<Entity> query(String param);验证动态 SQL 条件
使用 MyBatis-Flex 的QueryWrapper时,确保条件逻辑正确:
QueryWrapper query = QueryWrapper.create() .where(COLUMN.eq(param)); // 确保 param 非 null若参数为null,eq条件可能被忽略,导致查询无参数。
调试 SQL 日志
启用 MyBatis SQL 日志,检查最终生成的 SQL 是否包含参数:
# application.yml logging: level: org.mybatis: DEBUG观察控制台输出的 SQL 语句,确认参数是否被替换为占位符?并传递。
检查参数类型匹配
确保参数类型与数据库字段类型兼容。例如,字符串参数需用引号包裹:
-- XML 或注解中 WHERE column = #{param} -- 自动处理类型若为数值类型,避免误用字符串占位符。
确认方法调用
检查调用自定义查询时是否实际传入了参数:
// 错误示例:未传递参数 mapper.query(null); // 正确示例 mapper.query("value");通过以上步骤逐一排查,通常可定位参数未传递的原因。
avg.163.com/topic/detail/8004198
avg.163.com/topic/detail/8004199
avg.163.com/topic/detail/8004196
avg.163.com/topic/detail/8004201
avg.163.com/topic/detail/8004200
avg.163.com/topic/detail/8004197
avg.163.com/topic/detail/8004193
avg.163.com/topic/detail/8004191
avg.163.com/topic/detail/8004192
avg.163.com/topic/detail/8004190
avg.163.com/topic/detail/8004195
avg.163.com/topic/detail/8004188
avg.163.com/topic/detail/8004189
avg.163.com/topic/detail/8004187
avg.163.com/topic/detail/8004186
avg.163.com/topic/detail/8004185
avg.163.com/topic/detail/8004184
avg.163.com/topic/detail/8004182
avg.163.com/topic/detail/8004183
avg.163.com/topic/detail/8004180
avg.163.com/topic/detail/8004168
avg.163.com/topic/detail/8004161
avg.163.com/topic/detail/8004163
avg.163.com/topic/detail/8004159
avg.163.com/topic/detail/8004167
avg.163.com/topic/detail/8004165
avg.163.com/topic/detail/8004157
avg.163.com/topic/detail/8004158
avg.163.com/topic/detail/8004166
avg.163.com/topic/detail/8004162
avg.163.com/topic/detail/8004153
avg.163.com/topic/detail/8004160
avg.163.com/topic/detail/8004164
avg.163.com/topic/detail/8004155
avg.163.com/topic/detail/8004156
avg.163.com/topic/detail/8004152
avg.163.com/topic/detail/8004151
avg.163.com/topic/detail/8004150
avg.163.com/topic/detail/8004149
avg.163.com/topic/detail/8004148
avg.163.com/topic/detail/8004108
avg.163.com/topic/detail/8004106
avg.163.com/topic/detail/8004111
avg.163.com/topic/detail/8004110
avg.163.com/topic/detail/8004112
avg.163.com/topic/detail/8004109
avg.163.com/topic/detail/8004100
avg.163.com/topic/detail/8004099
avg.163.com/topic/detail/8004097
avg.163.com/topic/detail/8004103
avg.163.com/topic/detail/8004104
avg.163.com/topic/detail/8004101
avg.163.com/topic/detail/8004105
avg.163.com/topic/detail/8004095
avg.163.com/topic/detail/8004096
avg.163.com/topic/detail/8004098
avg.163.com/topic/detail/8004094
avg.163.com/topic/detail/8004093
avg.163.com/topic/detail/8004092
avg.163.com/topic/detail/8004090
avg.163.com/topic/detail/8004036
avg.163.com/topic/detail/8004037
avg.163.com/topic/detail/8004034
avg.163.com/topic/detail/8004032
avg.163.com/topic/detail/8004029
avg.163.com/topic/detail/8004027
avg.163.com/topic/detail/8004024
avg.163.com/topic/detail/8004028
avg.163.com/topic/detail/8004025
avg.163.com/topic/detail/8004039
avg.163.com/topic/detail/8004035
avg.163.com/topic/detail/8004038
avg.163.com/topic/detail/8004033
avg.163.com/topic/detail/8004031
avg.163.com/topic/detail/8004026
avg.163.com/topic/detail/8004021
avg.163.com/topic/detail/8004022
avg.163.com/topic/detail/8004023
avg.163.com/topic/detail/8004020
avg.163.com/topic/detail/8004019
avg.163.com/topic/detail/8003887
avg.163.com/topic/detail/8003883
avg.163.com/topic/detail/8003885
avg.163.com/topic/detail/8003900
avg.163.com/topic/detail/8003898
avg.163.com/topic/detail/8003899
avg.163.com/topic/detail/8003897
avg.163.com/topic/detail/8003895
avg.163.com/topic/detail/8003894
avg.163.com/topic/detail/8003892
avg.163.com/topic/detail/8003893
avg.163.com/topic/detail/8003891
avg.163.com/topic/detail/8003889
avg.163.com/topic/detail/8003890
avg.163.com/topic/detail/8003888
avg.163.com/topic/detail/8003886
avg.163.com/topic/detail/8003882
avg.163.com/topic/detail/8003884
avg.163.com/topic/detail/8003880
avg.163.com/topic/detail/7943799
avg.163.com/topic/detail/7943820
avg.163.com/topic/detail/7943847
avg.163.com/topic/detail/8003513
avg.163.com/topic/detail/7943766
avg.163.com/topic/detail/7943776
avg.163.com/topic/detail/7943794
avg.163.com/topic/detail/7943818
avg.163.com/topic/detail/7943843
avg.163.com/topic/detail/8003522
avg.163.com/topic/detail/7943787
avg.163.com/topic/detail/7943803
avg.163.com/topic/detail/7943830
avg.163.com/topic/detail/7943854
avg.163.com/topic/detail/7943880
avg.163.com/topic/detail/8003512
avg.163.com/topic/detail/7943765
avg.163.com/topic/detail/7943775
avg.163.com/topic/detail/7943771
avg.163.com/topic/detail/7943796
avg.163.com/topic/detail/7943790
avg.163.com/topic/detail/7943813
avg.163.com/topic/detail/7943834
avg.163.com/topic/detail/7943865
avg.163.com/topic/detail/7943861
avg.163.com/topic/detail/8003508
avg.163.com/topic/detail/8003506
avg.163.com/topic/detail/7943767
avg.163.com/topic/detail/7943774
avg.163.com/topic/detail/7943792
avg.163.com/topic/detail/7943812
avg.163.com/topic/detail/7943837
avg.163.com/topic/detail/8003507
avg.163.com/topic/detail/7943783
avg.163.com/topic/detail/7943805
avg.163.com/topic/detail/7943826
avg.163.com/topic/detail/7943883
avg.163.com/topic/detail/8003505
avg.163.com/topic/detail/7943798
avg.163.com/topic/detail/7943817
avg.163.com/topic/detail/7943846
avg.163.com/topic/detail/7943871
avg.163.com/topic/detail/7943901
avg.163.com/topic/detail/8003502