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

QQ登录

只需一步,快速开始

查看: 5118|回复: 5

[暂结贴(7天未回复)] 如何在bass服务端脚本中修改传入的数据

[复制链接]

10

主题

39

帖子

153

积分

初级会员

Rank: 2

积分
153
QQ
发表于 2016-3-3 23:35:49 | 显示全部楼层 |阅读模式
本帖最后由 lightrain 于 2016-3-3 23:39 编辑

我在数据库中有一张表格,存放新增的用户信息,如名称,性别,年龄等,另外还有一个字段是用户编号,在用户提交信息时,由服务端脚本通过一定的规则自动生成。

我的问题是,如何把生成的编号,以及用户提交的信息一起写入到数据库中?

后台脚本函数如下:

  1.         // 新增用户
  2.         private  void saveUserData(ServletRequest request, ServletResponse response) throws ParseException, SQLException, NamingException, IOException {
  3.                 // 参数序列化
  4.                 JSONObject params = (JSONObject) JSONObject.parse(request.getParameter("params"));        
  5.                
  6.                 // 获取参数
  7.                 JSONObject data = params.getJSONObject("data"); // 数据的JSON格式
  8.                 //data.put("fSeqNo", "12345");   //
  9.                
  10.                 // JSON转换Table
  11.                 Table table = Transform.jsonToTable(data);

  12.                 // 获取数据源连接
  13.                 Connection conn = Util.getConnection(DATASOURCE_HEALTHCERT);
  14.                 try {
  15.                         // 开启事务
  16.                         conn.setAutoCommit(false);
  17.                         try {
  18.                                 // 保存Table
  19.                                 Util.saveData(conn, table, TABLE_HEALTHCERT_USERDATA);
  20.                                 // 提交事务
  21.                                 conn.commit();
  22.                         } catch (SQLException e) {
  23.                                 // 如果发生异常,首先回滚事务,然后把异常继续抛出
  24.                                 conn.rollback();
  25.                                 throw e;
  26.                         }
  27.                 } finally {
  28.                         // 必须关闭数据源连接
  29.                         conn.close();
  30.                 }
  31.                 Util.writeJsonToResponse(response,Transform.tableToJson(table) );
  32.         }
复制代码


APP端按钮点击事件

  1.         Model.prototype.btnAddUserClick = function(event){

  2.                 var data = this.comp("newUserData");
  3.                 data.clear();
  4.                 data.newData({
  5.                         index : 0,
  6.                         defaultValues : [ {
  7.                                 "fID" : 0,
  8.                                 "fSeqNo" : "",
  9.                                 "fName" : this.comp("addInputUserName").val(),
  10.                                 "fSex"  : this.comp("addSelectSex").val(),
  11.                                 "fAge"  : this.comp("addInputAge").val()
  12.                          }]
  13.                 });
  14.                
  15.                 var params = {
  16.                         //  "columns" : data.getColumnIDs(),
  17.                         //  应从前端传入完整列定义(Baas.getDataColumns(data)), 以解决oracle等数据库不区分date、time、datetime,导致的数据格式转换问题;
  18.                         //  服务端兼容了以前只传入列名字符串(data.getColumnIDs())的写法,但是已不再推荐。                                
  19.                         "columns" : Baas.getDataColumns(data),
  20.                         "data" : data.toJson(true)
  21.                         
  22.                 };
  23.                
  24.                 var self = this;
  25.                 var success = function(resultData) {
  26.                         self.comp("messageDialog").show({
  27.                 "title" : "",
  28.                 "message" : "用户添加成功!"
  29.                                 });
  30.                 };
  31.                 Baas.sendRequest({
  32.                         "url" : "/demo",
  33.                         "action" : "saveUserData",
  34.                         "params" : params,
  35.                         "success" : success
  36.                 });
  37.         };
复制代码
发表于 2016-3-4 10:08:49 | 显示全部楼层
建议编号在前段生成,因为可能是多行数据的!否则你还要循环遍历每一行来赋值
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

10

主题

39

帖子

153

积分

初级会员

Rank: 2

积分
153
QQ
 楼主| 发表于 2016-3-4 14:10:55 | 显示全部楼层
liangyongfei 发表于 2016-3-4 10:08
建议编号在前段生成,因为可能是多行数据的!否则你还要循环遍历每一行来赋值 ...

我这个例子每次只提交一行数据,我只是想知道怎么修改的方法,谢谢。
回复 支持 反对

使用道具 举报

发表于 2016-3-4 14:28:41 | 显示全部楼层
lightrain 发表于 2016-3-4 14:10
我这个例子每次只提交一行数据,我只是想知道怎么修改的方法,谢谢。

这个是3.2.1版本的baas吧!都是开源的,你自己跟下源码看看吧!
可以看下saveData方法是如何获取出数据的!而且java类也是开源的!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

10

主题

39

帖子

153

积分

初级会员

Rank: 2

积分
153
QQ
 楼主| 发表于 2016-3-4 17:18:47 | 显示全部楼层
本帖最后由 lightrain 于 2016-3-4 17:20 编辑
liangyongfei 发表于 2016-3-4 14:28
这个是3.2.1版本的baas吧!都是开源的,你自己跟下源码看看吧!
可以看下saveData方法是如何获取出数据的 ...

不好意思,我找了好久,没有能找到我想要的代码,只有一个put方法是修改数据的,但是我用了之后却变成这样了,我不知道如何修改data1下面rows中的"fSeqNo",麻烦写清楚些,才接触APP开发,谢谢。


  1. // 修改前
  2. json data1 === {"@type":"table",
  3.                 "rows":[{
  4.                          "fAge":{"changed":0,"value":"33"},
  5.                          "fCheckCorp":{"changed":0},
  6.                          "fName":{"changed":0,"value":"111"},
  7.                          "fPicData":{"changed":0},
  8.                          "fSeqNo":{"changed":0},                        <<<<-----------想修改这一行数据
  9.                          "fSex":{"changed":0},
  10.                          "fValidDate":{"changed":0},
  11.                          "fWorkType":{"changed":0},
  12.                          "userdata":{
  13.                                      "id":{"changed":0,"value":0},
  14.                                      "isModified":true,
  15.                                      "recordState":"new"
  16.                                     }
  17.                         }],
  18.                   "userdata":{
  19.                           "idColumnDefine":"fID",
  20.                           "idColumnName":"fID",
  21.                           "idColumnType":"String",
  22.                           "model":"",
  23.                           "relationAlias":"fAge,fCheckCorp,fName,fPicData,fSeqNo,fSex,fValidDate,fWorkType",
  24.                           "relationTypes":"Integer,String,String,String,String,Integer,String,String",
  25.                           "relations":"fAge,fCheckCorp,fName,fPicData,fSeqNo,fSex,fValidDate,fWorkType",
  26.                           "updateMode":"whereVersion"
  27.                           }
  28.               }
  29. // JSONObject.put("fSeqNo", "12345");修改后
  30. json data2 === {"@type":"table",
  31.                 "fSeqNo":"12345",               <<<<-----------实际修改这一行数据
  32.                 "rows":[{
  33.                        "fAge":{"changed":0,"value":"33"},
  34.                        "fCheckCorp":{"changed":0},
  35.                        "fName":{"changed":0,"value":"111"},
  36.                        "fPicData":{"changed":0},
  37.                        "fSeqNo":{"changed":0},
  38.                        "fSex":{"changed":0},
  39.                        "fValidDate":{"changed":0},
  40.                        "fWorkType":{"changed":0},
  41.                        "userdata":{
  42.                                    "id":{"changed":0,"value":0},
  43.                                    "isModified":true,
  44.                                    "recordState":"new"
  45.                                   }
  46.                         }],
  47.                  "userdata":{
  48.                              "idColumnDefine":"fID",
  49.                              "idColumnName":"fID",
  50.                              "idColumnType":"String",
  51.                              "model":"",
  52.                              "relationAlias":"fAge,fCheckCorp,fName,fPicData,fSeqNo,fSex,fValidDate,fWorkType",
  53.                              "relationTypes":"Integer,String,String,String,String,Integer,String,String",
  54.                              "relations":"fAge,fCheckCorp,fName,fPicData,fSeqNo,fSex,fValidDate,fWorkType",
  55.                              "updateMode":"whereVersion"
  56.                              }
  57.                 }
复制代码
回复 支持 反对

使用道具 举报

发表于 2016-3-4 17:22:33 | 显示全部楼层
lightrain 发表于 2016-3-4 17:18
不好意思,我找了好久,没有能找到我想要的代码,只有一个put方法是修改数据的,但是我用了之后却变成这样 ...

你好楼主,该问题需要远程,已经通过技术服务QQ加你为好友了,请及时通过,我们会尽快QQ远程。
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 05:48 , Processed in 0.056001 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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