mybatis中oracle的sql没走索引导致特别慢(未加jdbcType的)

2023-12-14 20:55:42

如果直接跑sql是能走索引很快,在mybatis中不能,可能就是jdbcType的原因。
比如,我有一个属性A,在表里面是VARCHAR2类型,但是在mybatis中的sql是#{a},缺少jdbcType=JdbcType.VARCHAR,就会导致mybatis默认给NVARCHAR类型,调用PS对象会使用setNString,最后导致隐式转换问题不走索引。
把jdbcType加上就行了
如果是mybatis plus的话,在TableField注解上加了jdbcType还要在TableName注解中设置autoResultMap自动生成,不然这个jdbcType不会生效。
具体可以debug看一下
在这里插入图片描述

文章来源:https://blog.csdn.net/weixin_43373239/article/details/134998119
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。