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

QQ登录

只需一步,快速开始

查看: 3593|回复: 12

[处理中3] wex5_3.8的table与3.7的table不兼容

[复制链接]

165

主题

626

帖子

1160

积分

金牌会员

Rank: 6Rank: 6

积分
1160
QQ
发表于 2018-5-9 10:28:38 | 显示全部楼层 |阅读模式
本帖最后由 邹胖胖 于 2018-5-9 10:40 编辑

在Baas里,我使用:
String sql = "select pwd, account, pwd, name, sex from T_SYS_USER where username = ?";
paraList.add(account);
Table table = DataUtils.queryData(conn, sql, paraList, null, null, null);
String sourPwd= "";
if(table != null && table.getRows() != null && table.getRows().size() > 0){
        //3.7的写法,大写
        sourPwd = table.getRows().get(0).getString("PWD");
        //3.8的写法,与sql里大小写保持一致
        sourPwd = table.getRows().get(0).getString("pwd");
}
在3.7里面要使用使用大写来获取列的值,与JDBC一样;
但是在3.8里面要与sql里面的大小写一致才能获取到列的值;
将table传到后端去,在3.7里也是要使用大写来获取列的值,如:
if(data != null && data.rows[0] != null){
          var id = data.rows[0].ID.value;
          var name = data.rows[0].NAME.value;
}
现在在3.8里除了pwd是大写,其余全是小写,不知道为啥,附上图:


这也太搞笑了,3.7里面的项目升级到3.8还得全部改一遍自定义baas,以及后端接受的data取值。为什么没有一个标准,能够让每个版本都能兼容?
不然真的没法使用,以前3.6升级3.7的时候是页面上的icon几乎全部都对应不上。害的我所有页面全部都改了一遍icon,我发到论坛里,你们问我哪些icon不一样,难道你们都没有做向下兼容的100%分支覆盖测试吗?
后端接受到的data.PNG
发表于 2018-5-9 10:36:08 | 显示全部楼层
你是什么数据库??  字段最好和数据库中定义是一样的
如果是Oracle ,就必须要大写!
baas 资源 3.8应该没怎么改啊!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

165

主题

626

帖子

1160

积分

金牌会员

Rank: 6Rank: 6

积分
1160
QQ
 楼主| 发表于 2018-5-9 10:44:04 | 显示全部楼层
liangyongfei 发表于 2018-5-9 10:36
你是什么数据库??  字段最好和数据库中定义是一样的
如果是Oracle ,就必须要大写!
baas 资源 3.8应该没 ...

mysql,你再看下我刚刚的问题,之前没说全,我重新编辑补充了一些,不是数据库的原因,mysql中表的字段名也是大写啊
回复 支持 反对

使用道具 举报

发表于 2018-5-9 10:51:38 | 显示全部楼层
邹胖胖 发表于 2018-5-9 10:44
mysql,你再看下我刚刚的问题,之前没说全,我重新编辑补充了一些,不是数据库的原因,mysql中表的字段名 ...

字段名是大写,最好sql语句查找字段也是使用大写的

"select pwd, account

select 字段 是什么  .getString 就是什么  ,是对应的!

最好都和数据库的字段定义写成一致的就行了,不要一会儿大写一会儿小写的
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

165

主题

626

帖子

1160

积分

金牌会员

Rank: 6Rank: 6

积分
1160
QQ
 楼主| 发表于 2018-5-9 10:58:03 | 显示全部楼层
本帖最后由 邹胖胖 于 2018-5-9 11:01 编辑
liangyongfei 发表于 2018-5-9 10:51
字段名是大写,最好sql语句查找字段也是使用大写的

"select pwd, account

平时写sql都是用小写的,基本没有用大写,而且我上面那个sql都是用的小写,怎么会取出来pwd是大写,其他都是小写呢?我看你们的DataUtils.queryData里面是都转换成了大写的:
// 构造一个列名的映射,用于忽略列名大小写敏感
                Map<String, String> columnNameMap = new HashMap<String, String>();
                for (String column : table.getColumnNames()) {
                        columnNameMap.put(column.toUpperCase(), column);
                }
                //
                Map<String, DataType> columns = new HashMap<String, DataType>();
                ResultSetMetaData meta = rs.getMetaData();
                for (int i = 1, len = meta.getColumnCount(); i <= len; i++) {
                        String name = meta.getColumnLabel(i);
                        if (columnNameMap.containsKey(name.toUpperCase())) {
                                name = columnNameMap.get(name.toUpperCase());
                                DataType type = table.getColumnType(name);
                                columns.put(name, type);
                        }
                }
我理解的这个意思是取出来都是自动转换成了大写的,还是说我理解错了?
回复 支持 反对

使用道具 举报

发表于 2018-5-9 11:02:03 | 显示全部楼层
邹胖胖 发表于 2018-5-9 10:58
平时写sql都是用小写的,基本没有用大写,我看你们的DataUtils.queryData里面是都转换成了大写的:
// 构 ...

就这个改成大写了吗??其他字段都还小写吗,
本来就应该是大小写一致才对的。  如果有冲突以3.8为准吧,和数据库中一致才是正确的
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

165

主题

626

帖子

1160

积分

金牌会员

Rank: 6Rank: 6

积分
1160
QQ
 楼主| 发表于 2018-5-9 11:06:03 | 显示全部楼层
liangyongfei 发表于 2018-5-9 11:02
就这个改成大写了吗??其他字段都还小写吗,
本来就应该是大小写一致才对的。  如果有冲突以3.8为准吧, ...

对啊,为什么呢?这太恼火了,我5、6个项目,全都要去改了再测试,为什么你们的源码里做了大写转换,取出来却不对?没有其他办法吗?
回复 支持 反对

使用道具 举报

发表于 2018-5-9 11:31:23 | 显示全部楼层
邹胖胖 发表于 2018-5-9 11:06
对啊,为什么呢?这太恼火了,我5、6个项目,全都要去改了再测试,为什么你们的源码里做了大写转换,取出 ...

我问了一下,用3.8的   
这个有问题就只能是自己改代码了,要不就得还用3.7的BaasServer运行
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

165

主题

626

帖子

1160

积分

金牌会员

Rank: 6Rank: 6

积分
1160
QQ
 楼主| 发表于 2018-5-9 11:33:12 | 显示全部楼层
liangyongfei 发表于 2018-5-9 11:31
我问了一下,用3.8的   
这个有问题就只能是自己改代码了,要不就得还用3.7的BaasServer运行 ...

好吧
回复 支持 反对

使用道具 举报

165

主题

626

帖子

1160

积分

金牌会员

Rank: 6Rank: 6

积分
1160
QQ
 楼主| 发表于 2018-5-9 11:42:14 | 显示全部楼层
liangyongfei 发表于 2018-5-9 11:31
我问了一下,用3.8的   
这个有问题就只能是自己改代码了,要不就得还用3.7的BaasServer运行 ...

我还是想提这个建议,能够完善大小敏感的问题,望采纳
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-26 05:23 , Processed in 0.098335 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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