С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
64 / 64 / 26
Регистрация: 07.01.2016
Сообщений: 374
1

Обновление БД при логине

19.05.2017, 04:05. Показов 789. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно что бы когда юзер логинился, в БД обновлялся столбец userrank, юзер получает рандомное число и но прибавляется к его рангу.

Проблема в том, что в JpaRepository нету метода обновления кого то столбца в базе (или я не нашел и не понял).
https://github.com/heros79/TaskMLab проект

Что можете посоветовать.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.05.2017, 04:05
Ответы с готовыми решениями:

Использование прокси при логине
Доброго новогоднего дня. У меня вопрос, есть у меня логин в ВК, работает норм, но если добавляю...

Моргание экрана при логине
Запускаю компьютер - нужно ввести пароль(начинает моргать экран) все ввожу правильно и жму enter....

Фильтрация символов при логине
Вот при логине на сайт, я зделал для себя функцыю для фильтрации всяких ненужных символов, вот код...

Вылеты при логине в опере
Проблема в следующем - при логине на каком-либо сайте (ну естессно где авторизация требуется) через...

17
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
19.05.2017, 09:45 2
достаешь из репозитория юзера, которого надо обновить, меняешь, делаешь repo.save(newUser)
0
64 / 64 / 26
Регистрация: 07.01.2016
Сообщений: 374
19.05.2017, 10:57  [ТС] 3
xoraxax, по другому никак, обновлять все столбцы?
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
19.05.2017, 11:05 4
нативный апдейт напишите
0
64 / 64 / 26
Регистрация: 07.01.2016
Сообщений: 374
19.05.2017, 11:08  [ТС] 5
neske, писал через Factory но там что то при выборке (FROM User user) ошибку кидает, что то с версиями не то
0
Эксперт Java
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
19.05.2017, 12:08 6
Цитата Сообщение от DavidKarchikyan Посмотреть сообщение
писал через Factory
Цитата Сообщение от neske Посмотреть сообщение
нативный апдейт напишите
вам же сказали. Пишите нативный апдейт. Какая фактори?
Java
1
@Query("UPDATE user set bla=?1 where id = ?2" native=true)
точный синтаксис непомню, думаю сможете нагуглить
0
Эксперт Java
378 / 370 / 114
Регистрация: 30.06.2010
Сообщений: 1,445
21.05.2017, 17:17 7
Цитата Сообщение от DavidKarchikyan
по другому никак, обновлять все столбцы?
Все не обновляется, только необходимые, да и в любом случае это 1 запрос, а в прочем вам сказали верно, нативный запрос - самое то, только @Modifying не забудьте добавить(вроде именно такая аннотация
0
64 / 64 / 26
Регистрация: 07.01.2016
Сообщений: 374
21.05.2017, 19:10  [ТС] 8
Java
1
2
3
4
@Transactional
    @Modifying
    @Query("UPDATE User users SET userrank = 'setRank()' WHERE username = 'user.getUserName()'")
    int setRank (@Param("userrank") int userrank);
не работает, а указание native выдает ошибку
0
Эксперт Java
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
21.05.2017, 22:22 9
DavidKarchikyan, наверное надо погуглить...у вас хрень какая-то написана....

Напишите этот запрос так чтобы он работал в клиенте вашей БД. Затем скопируйте его к себе в код.
0
64 / 64 / 26
Регистрация: 07.01.2016
Сообщений: 374
21.05.2017, 23:46  [ТС] 10
KEKCoGEN,
Java
1
2
3
4
    @Transactional
    @Modifying
    @Query(value = "UPDATE users SET userrank = :userrank WHERE username = :username", nativeQuery = true)
    int setRank (@Param("userrank") int userRank);
Нагуглил но все равно не работает

Добавлено через 45 минут
https://github.com/heros79/TaskMLab
Буду рад и признателен если укажете на мои ошибки, первый ЕЕ проект
0
Эксперт Java
378 / 370 / 114
Регистрация: 30.06.2010
Сообщений: 1,445
22.05.2017, 05:07 11
Цитата Сообщение от DavidKarchikyan
:userrank
На сколько помню spring data не поддерживает именованные параметры, используйте ?1, ?2 и т.д.

К тому же у вас в запросе еще есть переменная username, которая никак не передается
0
64 / 64 / 26
Регистрация: 07.01.2016
Сообщений: 374
22.05.2017, 12:02  [ТС] 12
Цитата Сообщение от LeX Посмотреть сообщение
?1, ?2
это нумерация столбцов?

Добавлено через 14 минут
или нумерация параметров функции?

Добавлено через 11 минут
Java
1
2
@Query(value = "UPDATE users SET userrank = :userrank WHERE username = :username", nativeQuery = true)
    int setRank (@Param("userrank") int userRank, @Param("username") String username);
и так
Java
1
2
@Query(value = "UPDATE users SET userrank = ?1 WHERE username = :username", nativeQuery = true)
    int setRank (@Param("userrank") int userRank, @Param("username") String username);
не выдает ошибку, но при смене :username на ?2 выдает ошибку

Добавлено через 5 минут
сори нет ошибок кавычку удалили просто)))

Добавлено через 29 минут
Не выходит не фига(((
0
Эксперт Java
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
22.05.2017, 14:17 13
DavidKarchikyan, покажите последний вариант запроса который у вас.
0
64 / 64 / 26
Регистрация: 07.01.2016
Сообщений: 374
22.05.2017, 16:59  [ТС] 14
Java
1
2
3
4
 @Transactional
    @Modifying
    @Query(value = "UPDATE users SET userrank = ?1 WHERE username = ?2", nativeQuery = true)
int setRank (@Param("userrank") int userRank, @Param("username") String userName);
пробовал и без указания @Param

Добавлено через 2 минуты
Я думаю может вызов его неправильно сделал, в коде все работает, регистрация логин и так далее, при регистрации ранг дается заносится, список выводит. Вот только при логине ранг не меняется.

Добавлено через 2 часа 33 минуты
Hibernate: UPDATE users SET userrank = ? WHERE username = ?
лог при любых выше перечисленных способах

Добавлено через 56 секунд
Java
1
2
3
4
5
    @Override
    @ModelAttribute(name = "saverank")
    public int saveRank(User user) {
        return userDao.setRank(user.getUserRank() + new Random().nextInt(100), user.getUserName());
    }
реализация

Добавлено через 1 минуту
Java
1
2
3
4
5
    @RequestMapping(value = {"/", "/welcome"}, method = RequestMethod.GET)
    public String welcome (User user, Model model) {
        userService.saveRank(user);
        return "welcome";
    }
контроллер
0
Эксперт Java
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
22.05.2017, 22:24 15
Цитата Сообщение от DavidKarchikyan Посмотреть сообщение
Hibernate: UPDATE users SET userrank = ? WHERE username = ?
это говорит о том что все запрос работает как надо. Выводите параметры перед тем как передаете в дао и сравнивайте результат. Возможно проблема в другом месте в коде которого тут нет или проблемы нет вовсе.

Добавлено через 16 секунд
Цитата Сообщение от DavidKarchikyan Посмотреть сообщение
Hibernate: UPDATE users SET userrank = ? WHERE username = ?
это говорит о том что все запрос работает как надо. Выводите параметры перед тем как передаете в дао и сравнивайте результат. Возможно проблема в другом месте в коде которого тут нет или проблемы нет вовсе.
0
64 / 64 / 26
Регистрация: 07.01.2016
Сообщений: 374
22.05.2017, 22:26  [ТС] 16
KEKCoGEN, Да вроде все норм но не обновляется база))
0
Эксперт Java
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
22.05.2017, 22:30 17
DavidKarchikyan, пишите ваше рандомное значение в лог прежде чем слать в ДАО. Так же пишите в лог выражение где вы ранк вычесляете и юзернейм. Остановите программу в дебаге сразу после коммита транзакции и смотрите в БД на результат (а ещё лучше напишите юнит тест)
0
64 / 64 / 26
Регистрация: 07.01.2016
Сообщений: 374
22.05.2017, 22:34  [ТС] 18
KEKCoGEN, помучаюсь но вижу что проблема в получении записи из БД через ДАО, не знаю почему но через JPA
findALL()получает все параметры, но getUserRank только ноль получает, хотя там значение не 0
0
22.05.2017, 22:34
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.05.2017, 22:34
Помогаю со студенческими работами здесь

Разграничение возможностей юзера (при логине)
Привет. Плз, расскажите, как делается разграничение (к примеру, контролов на странице сайта) при...

Label при неверном логине/пароле
Есть окно авторизации,хочу чтобы при вводе неправильного логина или пароля появлялся Label1.Text =...

Как отследить ошибку при логине к Oracle?
Значит делаю я логин к базе Оракл: login, password берётся из формы. Function...

Открытие страницы в зависимости от роли при логине
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­­­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее: На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru