簡體   English   中英

如何通過Java ReSTful Web服務中的輸入參數值來使用戶存儲過程完成更新和創建記錄操作

[英]How to user stored procedure to fulfill update & create record operations by input parameters values in java ReSTful web services

我正在嘗試創建Web服務以使用相同的存儲過程來創建和更新用戶,為此,我正在通過ReST客戶端傳遞以下輸入

{
"user_id": "23",
"user_email_id": "a@a.a",
"user_password": "fdsdsdf",
"firstname": "sdfsdf",
"lastname": "sfdsdfds",
"mobile_number": "1234567890",
"user_status": 1,
"isdeleted": 0,
"created_by": 1,
"profile_picturename": "kfksdjfhksjd",
"address": "sfdsdfsd"
}

和我的JDBC代碼是

try {
        connection = this.getConnection();
        callableStatement = connection
                .prepareCall("{ call sp_user_upsert(?,?,?,?,?,?,?,?,?,?,?) } ");

        // this.setIntToCallableStatement("pv_user_id",
        // userInputModel.getUser_id());

        if (userInputModel.getUser_id() != null) {
            if (!(userInputModel.getUser_id().toString().isEmpty()))
                callableStatement.setInt("pv_user_id",
                        userInputModel.getUser_id());
            else
                callableStatement.setString("pv_user_id", "");

        } else {
            callableStatement.setString("pv_user_id", "");
        }
        callableStatement.setString("pv_user_email_id",
                userInputModel.getUser_email_id());

我能夠更新用戶記錄,但是如果我嘗試使用參數創建新用戶

{
"user_id": "",
"user_email_id": "a@a.a",
"user_password": "fdsdsdf",
"firstname": "sdfsdf",
"lastname": "sfdsdfds",
"mobile_number": "1234567890",
"user_status": 1,
"isdeleted": 0,
"created_by": 1,
"profile_picturename": "kfksdjfhksjd",
"address": "sfdsdfsd"
}

創建一個新記錄,其在其余客戶端上顯示HTTP / 1.1 400 Bad Request狀態,

任何人都可以幫助我解決此問題或建立用戶的任何好的建議

我正在使用MySql DB

提前致謝

不知道存儲過程和所使用的數據庫系統就很難回答這個問題。

我的猜測是,您為未知的user_id填充了一個String,但如果知道它則為一個int。 一些DB檢查類型簽名以解決存儲過程,您可能會簡單地收到錯誤消息“由於pv_user_id為字符串,未找到SP。嘗試輸入0,-1或將參數設置為null。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM