Форум программистов, компьютерный форум, киберфорум
Java: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 24.12.2019
Сообщений: 5

Не удаётся выполнить запрос UPDATE к БД

24.12.2019, 01:12. Показов 1775. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Очень прошу помощи форумчан.
Не получается сделать запрос на обновление колонки к БД.

Имею следующий нтерфейс:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public interface StudentRepo  extends  CrudRepository<Student, Integer> {
    List<Student> findById(int id);
 
    List<Student> deleteById(int id);
 
    List<Student> findByNameAndPassword(String name, String password);
 
    @Modifying
    @Query("update Student s set.id_book = :id_book where s.id = :id_student")
    int  updateBook(int id_student, int id_book );
 
 
 
}
Класс:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package com.example27.demo27.Student;
 
import javax.persistence.*;
import java.util.Date;
 
@Entity
public class Student {
 
    @Id
    @GeneratedValue
    int id;
    String name;
    String password;
    int id_book;
    @Temporal(TemporalType.DATE)
    private Date date;
 
    public Student() {
 
    }
 
    public Student(String name, String password) {
        this.name = name;
        this.password = password;
    }
 
    public int getId() {
        return id;
    }
 
    public void setId(int id) {
        this.id = id;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public String getPassword() {
        return password;
    }
 
    public void setPassword(String password) {
        this.password = password;
    }
 
    public int getId_book() {
        return id_book;
    }
 
    public void setId_book(int id_book) {
        this.id_book = id_book;
    }
 
    @Override
    public String toString() {
        return
                name + password;
    }
 
}
и собственно контроллер:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
package com.example27.demo27.Student;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.jdbc.repository.query.Query;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
 
import java.util.List;
import java.util.Map;
 
@Controller
public class StudentController {
 
    @Autowired
    public StudentRepo studentRepo;
 
    @GetMapping("/")
    public String student() {
        return "student";
    }
 
    @GetMapping("/main")
    public String main(Map<String, Object> model) {
        Iterable<Student> students = studentRepo.findAll();
        return "main";
    }
 
    @PostMapping("adduser")
    public String studentadd(@RequestParam String name, @RequestParam String password,
                             Map<String, Object> model) {
        Student student = new Student(name, password);
        studentRepo.save(student);
        return "redirect:/mainBook";
    }
 
    @PostMapping("finduser")
    public String find(@RequestParam int find, Map<String, Object> model) {
        Iterable<Student> student = studentRepo.findById(find);
        model.put("student", student);
        return "mainadmin";
    }
 
    @PostMapping("deluser")
    public String del(@RequestParam int del, Map<String, Object> model) {
        Iterable<Student> student = studentRepo.deleteById(del);
        return "mainadmin";
    }
 
    @PostMapping("findAllUser")
    public String findAll(Map<String, Object> model) {
        Iterable<Student> student = studentRepo.findAll();
        model.put("student", student);
        return "mainadmin";
    }
 
    @GetMapping("/autorizationuser")
    public String autorizationuser(@RequestParam(required = false) String name, @RequestParam(required = false) String password,
                                   Map<String, Object> model) {
        List<Student> student = studentRepo.findByNameAndPassword(name, password);
        for (int i = 0; i < student.size(); i++) {
           // System.out.println(student.get(i).toString());
            if (student.get(i).toString().equals(name + password)) {
                return "MainBook";
            }
        }
        return "/autorizationuser";
    }
 
    @Transactional   // 
    @PostMapping("take")  //ХОЧУ , ЧТО БЫ ХОТЬ ЧТО - ТО ЗАРАБОТАЛО, ПОЭТОМУ ПЕРЕДАЮ ТАКИЕ ПАРАМЕТРЫ
    public String updatebook( @RequestParam("nameBook") int id_book, @RequestParam("id_student") int  id_student, Map<String, Object> model){
 
        studentRepo.updateBook(4,2);
 
        return "mainBook";
    }
 
}
Собственно сама проблема: Не компилится, выкидывает exception :
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2019-12-24 00:59:40.039 ERROR 256 --- [ main] o.s.boot.SpringApplication : Application run failed

org.springframework.beans.factory.Unsati sfiedDependencyException: Error creating bean with name 'studentController': Unsatisfied dependency expressed through field 'studentRepo'; nested exception is org.springframework.beans.factory.BeanCr eationException: Error creating bean with name 'studentRepo': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract java.util.List com.example27.demo27.Student.StudentRepo .updateBook(int,int)! No property updateBook found for type Student!

Очень нужна помощь.

P.S. Всё замечательно работало пока не начал писать запрос на обновление колонки в БД
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.12.2019, 01:12
Ответы с готовыми решениями:

Не удается выполнить запрос Update
Доброго времени суток! Написал программу по работе с Базой Данных. Запросы SELECT и INSERT выполняются успешно. Появилась...

Не получается выполнить запрос UPDATE
Помогите пожалуйста. Есть база данных, в ней таблица жанров книг и книги, необходимо выполнить запрос обновления данных в таблице книг в...

Не удаётся выполнить запрос
Пытаюсь добавить запись в бд комп пишет Column count doesn't match value count at row 1 о чем это он!! Вот запрос ...

8
 Аватар для sdasdaw
406 / 278 / 93
Регистрация: 14.03.2017
Сообщений: 777
24.12.2019, 01:35
Java
1
2
3
@Modifying
@Query("update com.example27.demo27.Student s set s.id_book = :book where s.id = :student")
void updateBook(@Param("student") int student, @Param("book") int book);
0
0 / 0 / 0
Регистрация: 24.12.2019
Сообщений: 5
24.12.2019, 01:43  [ТС]
Спасибо за ответ, попробовал закопипастить , та же самая ошибка
0
 Аватар для sdasdaw
406 / 278 / 93
Регистрация: 14.03.2017
Сообщений: 777
24.12.2019, 01:52
Java
1
2
@Repository
/* ... */ extends  JpaRepository<Student, Integer>
0
0 / 0 / 0
Регистрация: 24.12.2019
Сообщений: 5
24.12.2019, 10:16  [ТС]
И это тоже я делал. И тоже не помогло. Я уже и незнаю куда копать. Всё время выскакивает одна и та же ошибка. А именно даже не компилится
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
24.12.2019, 10:38
sda755, покажи импорты
1
0 / 0 / 0
Регистрация: 24.12.2019
Сообщений: 5
24.12.2019, 10:44  [ТС]
к сожалению не имею возможности сейчас скинуть код. могу только ссылку на весь проект
https://github.com/Dmitry7555835/demo28 вот ссылка на гите
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
24.12.2019, 15:31
Лучший ответ Сообщение было отмечено sda755 как решение

Решение

sda755,
Как я и говорил выше. Неверный пакет аннотации Query. Ошибка выше говорит что спринг пытается построть запрос по конвенции имен и не находит поля updateBook. Это значит что аннотация квери игнорируется (кроме того что сам запрос там синтактически неверен).

должен быть org.springframework.data.jpa.repository. Query
1
0 / 0 / 0
Регистрация: 24.12.2019
Сообщений: 5
25.12.2019, 23:14  [ТС]
Большое спасибо. Всё заработало
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.12.2019, 23:14
Помогаю со студенческими работами здесь

Не удаётся выполнить SQL запрос
Добрый вечер! Поправьте пожалуйста, чтобы работал запрос.. Делаю Convert так как исходные данные выводятся только в формате 04.11.2013. ...

Не удаётся выполнить MySQL запрос
Друзья, помогите! Хочу сделать запрос из таблицы некоторых данных из формы, которая ссылается на этот скрипт: &lt;html&gt; ...

Не удаётся подключиться к базе данных и выполнить запрос
Доброго времени суток всем участникам форума. Надо подключиться к базе данных и достать из неё данные. Использую вот этот код: ...

SQLite: не удается выполнить запрос - отсутствует таблица
Здравствуйте! Читаю Шлее, не работает пример из главы 41, вот код, взятый из книги: #include &lt;QtWidgets&gt; #include...

Как с помощью обычного контрола Data выполнить SQL запрос типа UPDATE или DELETE?
Ребята, как с помощью обычного контрола Data выполнить SQL запрос типа UPDATE или DELETE? Короче VB6 и база Access. Не хочу усложнять...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru