ibatis 高手进。关于动态生成的问题

tree006 2009-09-03 01:54:05
我的sql语句是动态生成的,根据不同的条件查询不同的字段
问题是:
当服务器启动后,第一次执行时没问题,比如控制台打印执行的sql语句是 select name as 姓名 ,sex 男 from a
当我改变条件时,即第二次执行,比如控制台打印执行的sql语句是select name as 姓名 ,sex 男 ,tel as 电话 from a
但在控制台打印的结果 是没有“电话”列的,现象就是 实际执行的是 第一次执行的sql语句
当服务器从启后,在执行就有“电话”列了。
也就是说 只有第一次是正常的,以后每次都执行的第一次执行过的sql语句
注:我清理过缓存,没有效果。

总结一下问题
就是 在控制台显示执行的sql语句和实际执行的sql语句不一致,是服务器启动后第一次执行过的sql语句

代码我就不贴了,估计和代码没关系。应该是ibatis或设置的问题
这里请教高手了!!!!!

要看代码的话告诉我要看那块的代码,我会贴出来(我是新人,分不多。请大家多包涵)
...全文
149 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
tree006 2009-09-07
  • 打赏
  • 举报
回复
自己找到答案了

在 【statement】, 【select】, 和【procedure】 标签中存在一个可选的属性【remapResults】,默认值是false.
如果每次查询的列不定的话,这个属性需要设置为true.

谢谢各位结贴 给分了
zw393 2009-09-06
  • 打赏
  • 举报
回复
你的代码有问题。
tree006 2009-09-04
  • 打赏
  • 举报
回复
来高手解决一下啊,不胜感激啊
急啊~~~~~~~~~
tree006 2009-09-03
  • 打赏
  • 举报
回复
我每次从启服务的时候,第一次执行时好的

问题是 这个sql语句是通过页面上选择一些条件动态生成的。我也不能每次都重启啊

问题非常怪,你看控制台上明明打印出了新的sql语句。可结果就是缺是第一次执行的sql语句的结果
imasmallbird 2009-09-03
  • 打赏
  • 举报
回复
你这样试一下:先把你发布的工程彻底清除了,
然后重新发布执行一下其中的一个语句,执行完再把发布的工程彻底清除,
然后把你的SQL改一下,保存,再重新发布执行看一下结果会不会出来。
如果程序没有错感觉可能是改完以后的没有重新发布解析
tree006 2009-09-03
  • 打赏
  • 举报
回复
在说一下
此程序调用整个过程都不报错,sql绝对没有错
直接拿到数据库执行没有问题,而且是有 测试缓存 列的
tree006 2009-09-03
  • 打赏
  • 举报
回复
哪里错了啊,你说的是 字段上的a吗
那是我的 特殊处理。在结果里会自动处理成A
WuLYSoft 2009-09-03
  • 打赏
  • 举报
回复
你自己看清楚 自己的sql写错了
tree006 2009-09-03
  • 打赏
  • 举报
回复
呵呵 贴出来这么大一堆 呵呵
上面写错了
测试缓存 这列 在控制台显示执行的sql语句是有的
但在结果里,你看到了 是没有的

这个结果和我上次没有加 测试缓存 的sql语句执行效果一样
tree006 2009-09-03
  • 打赏
  • 举报
回复
2009-09-03 14:39:24,093 DEBUG [http-8888-3] - {conn-100128} Preparing Statement: select (select j.name from j_region j where j.region_code = substr(provRegionCode,0,2)||'0000') || decode(substr(provRegionCode,0,2)||'0000',substr(provRegionCode,0,4)||'00','', (select j.name from j_region j where j.region_code =provRegionCode) ) as provRegionCode,(select j.name from j_region j where j.region_code =provRegionCode) as cityName , sum(DECODE(clue_id,603,org_id,0)) as a企业标志, sum(DECODE(clue_id,786,org_id,0)) as a测试缓存, sum(DECODE(clue_id,701,org_id,0)) as a休闲娱乐, sum(DECODE(clue_id,621,org_id,0)) as a餐饮外送时间, sum(DECODE(clue_id,741,org_id,0)) as a测试营业状态, sum(DECODE(clue_id,641,org_id,0)) as a星级, sum(DECODE(clue_id,681,org_id,0)) as a基础信息1, sum(DECODE(clue_id,702,org_id,0)) as a测试星级, sum(DECODE(clue_id,721,org_id,0)) as a测试企业资质, sum(DECODE(clue_id,602,org_id,0)) as a信息来源, sum(DECODE(clue_id,597,org_id,0)) as a基础信息, sum(DECODE(clue_id,598,org_id,0)) as a属性信息, sum(DECODE(clue_id,642,org_id,0)) as a区划 , sum(DECODE(clue_id,603,org_id,0))+ sum(DECODE(clue_id,786,org_id,0))+ sum(DECODE(clue_id,701,org_id,0))+ sum(DECODE(clue_id,621,org_id,0))+ sum(DECODE(clue_id,741,org_id,0))+ sum(DECODE(clue_id,641,org_id,0))+ sum(DECODE(clue_id,681,org_id,0))+ sum(DECODE(clue_id,702,org_id,0))+ sum(DECODE(clue_id,721,org_id,0))+ sum(DECODE(clue_id,602,org_id,0))+ sum(DECODE(clue_id,597,org_id,0))+ sum(DECODE(clue_id,598,org_id,0))+ sum(DECODE(clue_id,642,org_id,0)) as totalNum from ( select prov_region_code as provRegionCode,clue_id,count( distinct org_id) org_id from t_result where 1=1 group by prov_region_code , clue_Id ) group by provRegionCode
2009-09-03 14:39:24,109 DEBUG [http-8888-3] - {pstm-100129} Executing Statement: select (select j.name from j_region j where j.region_code = substr(provRegionCode,0,2)||'0000') || decode(substr(provRegionCode,0,2)||'0000',substr(provRegionCode,0,4)||'00','', (select j.name from j_region j where j.region_code =provRegionCode) ) as provRegionCode,(select j.name from j_region j where j.region_code =provRegionCode) as cityName , sum(DECODE(clue_id,603,org_id,0)) as a企业标志, sum(DECODE(clue_id,786,org_id,0)) as a测试缓存, sum(DECODE(clue_id,701,org_id,0)) as a休闲娱乐, sum(DECODE(clue_id,621,org_id,0)) as a餐饮外送时间, sum(DECODE(clue_id,741,org_id,0)) as a测试营业状态, sum(DECODE(clue_id,641,org_id,0)) as a星级, sum(DECODE(clue_id,681,org_id,0)) as a基础信息1, sum(DECODE(clue_id,702,org_id,0)) as a测试星级, sum(DECODE(clue_id,721,org_id,0)) as a测试企业资质, sum(DECODE(clue_id,602,org_id,0)) as a信息来源, sum(DECODE(clue_id,597,org_id,0)) as a基础信息, sum(DECODE(clue_id,598,org_id,0)) as a属性信息, sum(DECODE(clue_id,642,org_id,0)) as a区划 , sum(DECODE(clue_id,603,org_id,0))+ sum(DECODE(clue_id,786,org_id,0))+ sum(DECODE(clue_id,701,org_id,0))+ sum(DECODE(clue_id,621,org_id,0))+ sum(DECODE(clue_id,741,org_id,0))+ sum(DECODE(clue_id,641,org_id,0))+ sum(DECODE(clue_id,681,org_id,0))+ sum(DECODE(clue_id,702,org_id,0))+ sum(DECODE(clue_id,721,org_id,0))+ sum(DECODE(clue_id,602,org_id,0))+ sum(DECODE(clue_id,597,org_id,0))+ sum(DECODE(clue_id,598,org_id,0))+ sum(DECODE(clue_id,642,org_id,0)) as totalNum from ( select prov_region_code as provRegionCode,clue_id,count( distinct org_id) org_id from t_result where 1=1 group by prov_region_code , clue_Id ) group by provRegionCode
2009-09-03 14:39:24,109 DEBUG [http-8888-3] - {pstm-100129} Parameters: []
2009-09-03 14:39:24,109 DEBUG [http-8888-3] - {pstm-100129} Types: []
2009-09-03 14:39:24,140 DEBUG [http-8888-3] - {rset-100130} ResultSet
2009-09-03 14:39:24,140 DEBUG [http-8888-3] - {rset-100130} Header: [PROVREGIONCODE, CITYNAME, A企业标志, A休闲娱乐, A餐饮外送时间, A测试营业状态, A星级, A基础信息1, A测试星级, A测试企业资质, A信息来源, A基础信息, A属性信息, A区划, TOTALNUM]
2009-09-03 14:39:24,140 DEBUG [http-8888-3] - {rset-100130} Result: [上海市, 上海市, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 3]
2009-09-03 14:39:24,140 DEBUG [http-8888-3] - {rset-100130} Result: [江西省, 江西省, 0, 0, 0, 0, 2, 0, 8, 0, 0, 0, 0, 1, 11]
2009-09-03 14:39:24,140 DEBUG [http-8888-3] - {rset-100130} Result: [山东省, 山东省, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1]
2009-09-03 14:39:24,140 DEBUG [http-8888-3] - {rset-100130} Result: [湖南省, 湖南省, 0, 2, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 10]
2009-09-03 14:39:24,140 DEBUG [http-8888-3] - {rset-100130} Result: [海南省, 海南省, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4]
2009-09-03 14:39:24,140 DEBUG [http-8888-3] - {rset-100130} Result: [贵州省, 贵州省, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1]
2009-09-03 14:39:24,140 DEBUG [http-8888-3] - {rset-100130} Result: [陕西省, 陕西省, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2]




注意看 测试缓存 这列 在sql语句里有,在结果里有
imasmallbird 2009-09-03
  • 打赏
  • 举报
回复
你还是把控制台的比如控制台打印执行的sql语句是select name as 姓名 ,sex 男 ,tel as 电话 from a 但在控制台打印的结果 是没有“电话”列的,现象日志贴出来吧~~
猜测一下,怎么感觉是你传入的参数没变,导致的SQL没变,才出现这个现象的呢

67,516

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧