Как пользовательской хранимой процедуре выполнять операции обновления и создания записей по значениям входных параметров в веб-сервисах java ReSTful

Я пытаюсь создать веб-службу для создания и обновления пользователя, используя ту же хранимую процедуру, для этого я передаю следующие данные через клиент ReST.

{
"user_id": "23",
"user_email_id": "[email protected]",
"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": "[email protected]",
"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 БД

заранее спасибо


person Anup Deshpande    schedule 18.01.2016    source источник
comment
Не могли бы вы поделиться кодом для вашей процедуры sp_user_upsert? Кроме того, есть ли у вас какие-либо журналы/трассировки стека из бэкэнда?   -  person Mick Mnemonic    schedule 18.01.2016


Ответы (1)


Трудно ответить на этот вопрос, не зная хранимой процедуры и системы БД, которую вы используете.

Я предполагаю, что вы заполняете String для неизвестного user_id, но int, если он известен. Некоторые базы данных проверяют сигнатуру типа для разрешения хранимой процедуры, и вы можете просто получить сообщение об ошибке «SP не найден, поскольку pv_user_id является строкой. Попробуйте указать 0, -1 или установить для параметра значение null.

person csar    schedule 18.01.2016
comment
Я использую MySql DB, и если передать идентификатор пользователя как null или , клиент ReST показывает 400 Bad Request с сообщением. Запрос, отправленный клиентом, был синтаксически неверным, по-прежнему сталкивается с той же проблемой. - person Anup Deshpande; 18.01.2016