如何使用存储过程通过 java ReSTful 网络服务中的输入参数值来完成更新和创建记录操作

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 休息客户端上的错误请求状态,

任何人都可以帮我解决这个问题或任何好的创建用户的建议

我正在使用 MySql 数据库

提前致谢

如果不了解您正在使用的存储过程和数据库系统,很难回答这个问题。

我的猜测是,您为未知 user_id 填充一个字符串,但如果已知,则填充一个 int。一些数据库会检查类型签名来解析存储过程,您可能只会收到错误消息“SP not found because pv_user_id being a String. Try to put 0, -1 or set the parameter to null.