多种情况会导致这个问题:
1.返回结果集比较大时FETCHSIZE设置接近结果集大小一般会影响查询的速度
2.将#改成$试试,就是mybatis 解析 在占位符处理的时候 花费了大量时间,还成$后和plsql执行时间几乎一样了(prepareStatement # 和 Statement $,预编译会提前生成执行计划,不做优化,因此效率可能很低 )
mybatis #{}相当于prepareStatement,${}相当于Statement
3.对于索引行如果数据类型不对可能导致索引不能用时间变长
4.对于Oracle数据库查询条件中有date类型的,java实体类有util.date类型的查询时会转换成timestamp
影响这些的原因大概就是这些mybatis预加载,拼接SQL慢,数据类型不一致导致无法用索引,结果集太大,交互次数多导致时间变长