Мой вопрос очень простой и в заголовке. Google и переполнение стека ничего мне не дают, поэтому я решил, что пришло время задать вопрос.
В настоящее время я делаю sql-запрос, когда пользователи регистрируются на моем сайте. Я ВСЕГДА использовал только подготовленные операторы из-за дополнительного кодирования в вызываемых операторах, и производительность обычных операторов снижается. Однако этот запрос заставляет меня думать о возможных альтернативах моему предыдущему универсальному способу (подготовленные заявления).
Этот запрос имеет в общей сложности 4 обращения к базе данных туда и обратно. Шаги
- Вставьте пользователя в базу данных, верните сгенерированный ключ (его идентификатор пользователя) в наборе результатов.
- Возьмите идентификатор пользователя и вставьте строку в таблицу альбомов. Вернуть сгенерированный ключ (идентификатор альбома)
- Возьмите идентификатор альбома и вставьте строку в таблицу изображений. Вернуть сгенерированный ключ (идентификатор изображения)
- Возьмите идентификатор изображения и обновите текущий столбец по умолчанию в пользовательских таблицах с помощью идентификатора изображения.
Кроме того: для всех, кто интересуется тем, как я получаю ключи обратно после вставки, это с Statement.RETURN_GENERATED_KEYS
, и вы можете прочитать отличную статью об этом здесь - Статья IBM
В любом случае, я хотел бы знать, допустимо ли использование 4-х (но кэшируемых) подготовленных операторов туда и обратно или мне следует использовать пакетные (но не кэшируемые) операторы?