最近遇到两个关于Ibatis 转换date类型的问题,记录一下:
sql_text:
select distinct t.cc from aa t
where t.update_time > :1 and t.update_time < :2
Optimizer Plan:
-----------------------------------------------------------------------------------------------------------
| Operation | Name | Rows | Bytes| Cost | Pstart| Pstop |
------------------------------------------------------------------------------------------------------------
| SELECT STATEMENT | | | | 226780 | | |
| HASH UNIQUE | | 5K| 72K| 226780 | | |
| FILTER | | | | | | |
| TABLE ACCESS FULL |AA | 69K| 949K| 226774 | | |
------------------------------------------------------------------------------------------------------------
开始一看以为是没建索引,但是发现索引是存在的,同时explain plan 发现走的也是正确的执行计划。
怀疑是统计信息的问题,于是重新收集了统计信息,并重新生成了执行计划,但是还是同样的。因为那天通宵了一夜,
头脑比较晕,没明白是怎么回事。
回家后仔细看了一下v$sql_plan ,发现如下信息:
(INTERNAL_FUNCTION("S"."UPDATE_TIME")>=:1 AND INTERNAL_FUNCTION("S"."UPDATE_TIME")<:2
表示oracle对这个字段做了转换后再去比较,于是怀疑应用里的类型不对,开发同事提供了如下sql,虽然他传入配置文件的属性是date型。
但是IbatiS并没有转换成oracle能识别的date型:
select distinct t.cc from aa t
where t.update_time > #startTimeStr# and t.update_time < #endTimeStr#
于是通知开发修改语句:
update_time >= to_date(#startTimeStr#,'yyyy-mm-dd hh24:mi:ss') and update_time < to_date(#endTimeStr#,'yyyy-mm-dd hh24:mi:ss')
相关推荐
ibatis 读取oracle clob类型
Ibatis调用Oracle存储过程,返回自定义的类型。
ibatis+oracle简单实例,其中包括ibatis jar包以及oracle驱动包
ibatis调用oracle存储过程分页
ibatis调用oracle存储过程
ibatis oracle ibatis-2.3.3.jar ojdbc14.jar ibatis连接oracle所需的jar包
spring+ibatis+oracle分页缓存源码
使用ibatis+oracle完成简单的增删改查的例子,把源码导入myeclipse,修改链接数据库信息,数据库需要自己建立
Spring MVC+ibatis+Oracle资源整合,实现简单的增删改查
本资源适合刚刚接触ibatis+oracle的小伙伴使用,欢迎交流,吐槽。
spring mvc+ibatis+oracle单表增删改(包都有)
maven spring struts ibatis oracle框架整合,
小弟新手,第一次发自己的项目,整合了ssi,实现了ibatis连接oracle的分页,这个分页没有网上说的那么复杂,只是拼了sql分页语句就可以了
一个Ibatis。net 的应用事例 数据库为oracle 用vs2008 导入即可使用。
struts2+spring+ibatis+oracle+分页搜索+上传附件实例!完整版!
ibatis调用oracle的函数,存储过程的方法,从网上收集的,还没有整理。
spring struts2 ibatis整合,sha1加密,oracle数据库。myeclipse直接导入即可。
框架包 由于一次上传要小于15M 所以只能上传两次......
ibatis学习总结,oracle 学习总结,大数据量处理