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

QQ登录

只需一步,快速开始

查看: 3326|回复: 3

[分享] WeX5中如何执行存储过程

  [复制链接]

2

主题

5

帖子

23

积分

新手上路

Rank: 1

积分
23
QQ
发表于 2018-1-10 11:39:33 | 显示全部楼层 |阅读模式
本人最近也是在学习用WeX5开发一个移动产品,数据库是mysql,需要执行一个存储过程,这个存储过程是带输入和输出参数的。现在贴出源码分享给大家.
整体思路:
       1、写一个执行存储过程的方法:java文件;
       2、创建一个服务.m文件
       3、前端通过传入参数执行。
java文件源码如下:
package iKr;

import java.sql.CallableStatement;
import java.sql.Connection;

import javax.naming.NamingException;

import com.alibaba.fastjson.JSONObject;
import com.justep.baas.action.ActionContext;
import com.justep.baas.data.sql.SQLException;

public class ExcPro {
       
        public static JSONObject execExchange(JSONObject params, ActionContext context) throws SQLException,NamingException,java.sql.SQLException{
                String UserID = params.getString("UserID");
                String exUserID = params.getString("exUserID");
                String OrderNo = params.getString("OrderNo");
                Float balance = params.getFloat("Balance");
                Integer sClass = params.getInteger("sClass");
                Integer sType = params.getInteger("sType");
                String exMemo = params.getString("exMemo");
                Integer iResult = -1;
               
                //将存储过程的输出参数通过jsonOBJ返回前台
                JSONObject jsonObj = new JSONObject();

                Connection conn = context.getConnection("iruKang");//数据源,不是数据库名称
                CallableStatement cstmt = conn.prepareCall("{call proc_exchange(?,?,?,?,?,?,?,?)}"); //存储过程,有几个参数,就有几?号,包括输出参数
                cstmt.setString(1, UserID);
                cstmt.setString(2, exUserID);
                cstmt.setString(3, OrderNo);
                cstmt.setFloat(4, balance);
                cstmt.setInt(5, sClass);
                cstmt.setInt(6, sType);
                cstmt.setString(7, exMemo);
                //cstmt.setInt(8, iResult);
                cstmt.registerOutParameter(8, java.sql.Types.INTEGER);//创建一个输出参数

                try{
                        cstmt.execute();
                        iResult = cstmt.getInt(8);//执行完成后,取输出参数的值
                        jsonObj.put("iResult", iResult);//push到jsonObj中,返回到前端
                        return jsonObj;
                }
                finally{
                       
                        conn.close();
                }
        }

}



2、服务的
360截图20180110113933087.jpg

3、前端调用 ,W文件

        Model.prototype.div3Click = function(event){
                debugger;
                var params = {
                                "UserID": "22",
                                "exUserID":"5",
                                "OrderNo": "20180110203902",
                                "Balance": 700,
                                "sClass": 1,
                                "sType": 1,
                                "exMemo": "购买服务"
                };
                var self = this;

                justep.Util.hint("发送成功!");
                var success = function(resultData){
                        alert(resultData.iResult);

                };
                //先注释,已经发送成功了
                justep.Baas.sendRequest({
                        "url": "/iKr/exchange",
                        "params": params,
                        "action": "exec_proc",
                        "success": success
                });


希望可以帮到初学者

22

主题

598

帖子

2109

积分

金牌会员

Rank: 6Rank: 6

积分
2109
QQ
发表于 2018-1-10 11:48:42 | 显示全部楼层
执行不了,后台自己写才行
【接活】APP 公众号 小程序 前后端带管理系统全套搞定
联系QQ:646105064 剑客共享  
欢迎用x5开发的朋友进群探讨!WeX5/BeX5民间一群:30057529  二群:211206160
回复 支持 反对

使用道具 举报

2

主题

5

帖子

23

积分

新手上路

Rank: 1

积分
23
QQ
 楼主| 发表于 2018-1-10 13:29:20 | 显示全部楼层
jkshare 发表于 2018-1-10 11:48
执行不了,后台自己写才行

要自己写baas服务,然后编译baas~~~
前端调用。
回复 支持 反对

使用道具 举报

5

主题

15

帖子

41

积分

新手上路

Rank: 1

积分
41
QQ
发表于 2019-3-4 16:08:29 | 显示全部楼层
kongwai 发表于 2018-1-10 13:29
要自己写baas服务,然后编译baas~~~
前端调用。

com.justep.baas.action.ActionException: Action[scanCode/ScanCode/insertReplace]执行失败,null    执行失败,原因未知。。  求帮助;
主体上 基本是仿写了 楼主的代码  逻辑使用自己的, 只有  前端调用时,url处 不明白,  /iKr/exchange  是什么?  iKr是包名?  exchange是service名?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 06:42 , Processed in 0.085382 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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