起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3944|回复: 12

[结贴] 数据类型为Decimal,data组建无法loadjson

[复制链接]

13

主题

47

帖子

114

积分

初级会员

Rank: 2

积分
114
QQ
发表于 2014-11-10 16:30:07 | 显示全部楼层 |阅读模式
版本: 小版本号:
数据库: 服务器操作系统: 应用服务器:
客户端操作系统: 浏览器:
从Oracle执行了查询,无法返回结果,控制台报错,Caused by: com.justep.model.exception.ModelException: 类型不一致,列CLASSCODE定义的类型为:Decimal当前给出的类型:Integer或者Object,通过  
  1. <div>  Table resT =  SQL.select(sqlMap, null, "/leaderMonitoring/lmERPQuery/data");</div><div><span class="Apple-tab-span" style="white-space:pre">                </span> Iterator<Row> i = resT.iterator();</div><div><span class="Apple-tab-span" style="white-space:pre">                </span> while(i.hasNext()){</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span> Row row = i.next(); </div><div><span class="Apple-tab-span" style="white-space:pre">                        </span> System.out.print(row.getDecimal("CLASSCODE")+"|"+row.getString("DESCRIPTION"));</div><div><span class="Apple-tab-span" style="white-space:pre">                </span> }</div>
复制代码
可以正常输出数据,但是在js中justep.xbl("classifyData").loadJson(result.response);无法加载数据到data组件,alert(result.response);输出[object Object],求解决方法。

13

主题

47

帖子

114

积分

初级会员

Rank: 2

积分
114
QQ
 楼主| 发表于 2014-11-10 16:31:08 | 显示全部楼层
擦,java代码咋变成html了
  1.         public static Table getClassifyList(Integer rootClassifyID){
  2.                  String sql = "SELECT CLASSCODE, DESCRIPTION, PARENTCLASSCODE  FROM GF_SUBLIBCLASSIFY_CLASS_T  CONNECT  BY PRIOR CLASSCODE =  PARENTCLASSCODE START WITH PARENTCLASSCODE = "+rootClassifyID+"";
  3.                  HashMap<String,String> sqlMap = new HashMap<String,String>();
  4.                  sqlMap.put(DatabaseProduct.ORACLE.name(), sql);
  5.                  Table resT =  SQL.select(sqlMap, null, "/leaderMonitoring/lmERPQuery/data");
  6.                  Iterator<Row> i = resT.iterator();
  7.                  while(i.hasNext()){
  8.                          Row row = i.next();
  9.                          System.out.print(row.getDecimal("CLASSCODE")+"|"+row.getString("DESCRIPTION"));
  10.                  }
  11.                  return resT;                 
  12.         }
复制代码
回复 支持 反对

使用道具 举报

94

主题

1141

帖子

2380

积分

金牌会员

Rank: 6Rank: 6

积分
2380
发表于 2014-11-10 17:06:11 | 显示全部楼层
转化成int看看行不行 Integer.parseInt(row.getDecimal("CLASSCODE")) ;
回复 支持 反对

使用道具 举报

13

主题

47

帖子

114

积分

初级会员

Rank: 2

积分
114
QQ
 楼主| 发表于 2014-11-10 17:08:58 | 显示全部楼层
jason2014 发表于 2014-11-10 17:06
转化成int看看行不行 Integer.parseInt(row.getDecimal("CLASSCODE")) ;

意思是我得在java内先把SQL.select返回的Table先遍历一遍然后数据都转换?
desc这个表,这个字段是number类型的,怎么查询后变成Decimal类型了?
回复 支持 反对

使用道具 举报

94

主题

1141

帖子

2380

积分

金牌会员

Rank: 6Rank: 6

积分
2380
发表于 2014-11-10 17:20:08 | 显示全部楼层
这个字段CLASSCODE在数据库表中是number类型的?那怎么会变成Decimal,而且你怎么知道变成了Decimal。你是数据return resT;返回不了到页面吗?还是返回了loadJson()不到数据到data组件?
回复 支持 反对

使用道具 举报

13

主题

47

帖子

114

积分

初级会员

Rank: 2

积分
114
QQ
 楼主| 发表于 2014-11-10 17:24:04 | 显示全部楼层
jason2014 发表于 2014-11-10 17:20
这个字段CLASSCODE在数据库表中是number类型的?那怎么会变成Decimal,而且你怎么知道变成了Decimal。你是 ...

开始的时候报错,然后我在控制台输出Table内容,用row.getString("CLASSCODE")的时候,控制台报错:“Caused by: com.justep.model.exception.ModelException: 类型不一致,列CLASSCODE定义的类型为:Decimal当前给出的类型:Integer或者Object”
然后改成row.getDecimal后控制台可以输出内容,但是前台js还是获取不到,alert(result.response)的输出为“[object Object]”
回复 支持 反对

使用道具 举报

1

主题

1222

帖子

1378

积分

金牌会员

Rank: 6Rank: 6

积分
1378
QQ
发表于 2014-11-10 17:26:13 | 显示全部楼层
别的列能加载进去吗
回复 支持 反对

使用道具 举报

13

主题

47

帖子

114

积分

初级会员

Rank: 2

积分
114
QQ
 楼主| 发表于 2014-11-10 17:29:48 | 显示全部楼层
wangliang 发表于 2014-11-10 17:26
别的列能加载进去吗

一起查询的这个PARENTCLASSCODE也一样,换了个表查询,只要是number类型的字段统统报这个异常。
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35942
发表于 2014-11-10 17:31:25 | 显示全部楼层
classifyData是bizdata还是通用data,关系名给sql返回的列名都一致吗,关系类型都一致吗?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

89

主题

1377

帖子

1837

积分

金牌会员

Rank: 6Rank: 6

积分
1837
QQ
发表于 2014-11-10 17:36:36 | 显示全部楼层
这样的有小数点的数据Oracle中定义成NUMBER(x,x) 概念中相应的设置Decimal的长度为x,精度为x;
java中获取值就用getFloat, js中就用getDecimal

评分

参与人数 1 +2 收起 理由
jishuang + 2 赞一个!

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-18 19:07 , Processed in 0.109110 second(s), 29 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表