我正在尝试将jdbcType设置为传递给Ibatis查询的参数。我的后端表具有定义为varchar的字段,而mybatis框架似乎正在转换我传递的String参数
在我的mapper.java到nvarchar。结果,查询优化器花费时间来验证执行计划,进行隐式类型转换,因此会发生一些意外的延迟。关于解决该问题有什么建议吗?

我已经尝试过的样本:
从myTable t中选择*,其中t.periodType =#{periodType,javaType =“ String”,jdbcType =“ varchar”}

问题是,我们的查询很大,它包含很多子查询,在这些子查询中我们多次传递相同的参数。在每次出现时为同一变量定义jdbcType变得很麻烦。

不推荐使用parameterMap时,我尝试浏览parameterType。我将一个类传递给parameterType,但是找不到将jdbcType设置为parameterType中变量的方法。

任何帮助表示赞赏

最佳答案

parameterType对您不起作用-这是Java类型,很少需要。
我能想到的一种选择是使用

select * from myTable t where t.periodType=<include refid="PARAM_PERIOD_TYPE"/>


但是,这将使SQL无法读取。唯一的好处是,如果要进行更改,则只需在引用的PARAM_PERIOD_TYPE sql标记中。

10-07 15:56