powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Как получить last inserted id
9 сообщений из 9, страница 1 из 1
Как получить last inserted id
    #39974940
bobo96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет, как при вставке данных получить id этой записи ?

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
@PersistenceContext
private EntityManager entityManager;

@Transactional
public boolean insertAddress(int id, int delay, String address) {

    try {
        entityManager.createNativeQuery(
                "INSERT INTO location_alarm (id_user, date_time, address, address_alarm_delay) " +
                        "VALUES (?, GETDATE(), ?, ?)")
                .setParameter(1, id)
                .setParameter(2, address)
                .setParameter(3, delay)
                .executeUpdate();
    } catch (Exception e) {
        e.printStackTrace();
        return false;
    }
    return true;
}
...
Рейтинг: 0 / 0
Как получить last inserted id
    #39974948
artas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bobo96,

создайте модель.
Заполните параметры
выполните save/saveOrUpdate
у модели выполните object.getId()

из данного запроса почти никак
синхронайз + max(id) не считаем
...
Рейтинг: 0 / 0
Как получить last inserted id
    #39974955
bobo96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
artas,

спасибо, а можно в виде примера это увидеть ? Или ссылка на что-то вменяемое ?
В интернетах ерунда какая-то находится, может искать не умею:(
...
Рейтинг: 0 / 0
Как получить last inserted id
    #39974958
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bobo96,

@@IDENTITY (Transact-SQL) , SCOPE_IDENTITY (Transact-SQL)

Соответственно надо запрос изменить.
...
Рейтинг: 0 / 0
Как получить last inserted id
    #39975156
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bobo96
artas,

спасибо, а можно в виде примера это увидеть ? Или ссылка на что-то вменяемое ?
В интернетах ерунда какая-то находится, может искать не умею:(

Вам надо рашить для примеров, будете ли вы дальше работать с Sql всякими insert, delete.
Или хотите по хиперски, как в хибере, работать с классами и запросы генерируются.
...
Рейтинг: 0 / 0
Как получить last inserted id
    #39975263
bobo96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
bobo96
artas,

спасибо, а можно в виде примера это увидеть ? Или ссылка на что-то вменяемое ?
В интернетах ерунда какая-то находится, может искать не умею:(

Или хотите по хиперски, как в хибере, работать с классами и запросы генерируются.

У меня пока нет таких глубоких познаний, мне бы просто сделать, что бы работало))
А как запросы могут сами генерироваться ? Ну за исключением каких-нибудь примитивов, типа User findById(int id);
...
Рейтинг: 0 / 0
Как получить last inserted id
    #39975277
kolchanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как получить last inserted id
    #39975278
artas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bobo96
artas,

спасибо, а можно в виде примера это увидеть ? Или ссылка на что-то вменяемое ?
В интернетах ерунда какая-то находится, может искать не умею:(


https://howtodoinjava.com/hibernate/hibernate-save-and-saveorupdate/
...
Рейтинг: 0 / 0
Как получить last inserted id
    #39975346
bobo96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо, в итоге родил вот это:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
    @Transactional
    public int insertAddress(int id, int delay, String address) {

        KeyHolder keyHolder = new GeneratedKeyHolder();
        JdbcTemplate jdbcTemplate = new JdbcTemplate(mDataSource);

        jdbcTemplate.update(con -> {
            PreparedStatement statement = con.prepareStatement(
                    "INSERT INTO location_alarm (id_user, date_time, address, address_alarm_delay) " +
                            "VALUES (?, GETDATE(), ?, ?) ", Statement.RETURN_GENERATED_KEYS);
            statement.setInt(1, id);
            statement.setString(2, address);
            statement.setInt(3, delay);
            return statement;
        }, keyHolder);

        return keyHolder.getKey() != null ? keyHolder.getKey().intValue() : 0;

    }



Вроде даже работает)))
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как получить last inserted id
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]