com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: неизвестный столбец «количество» в «списке полей»

#java #mysql #database #jdbc

#java #mysql #База данных #jdbc

Вопрос:

Я получаю MySQLSyntaxErrorException: Unknown column 'quantity' in 'field list' сообщение об ошибке при вставке значения в мою базу данных mysqldatabase. У меня есть количество столбцов в моей таблице, но в списке полей указано неизвестный столбец. Ниже приведен мой код, и я понятия не имею, что с ним не так. Кто-нибудь может мне помочь? Заранее благодарю вас.

 query = "insert into tbl_reservations(cust_name,product_name,quantity,price,total,purchase_date,order_number,status) values  ('"   nam   "','"   name[x]   "','"   quantity[x]   "','"   fprice[x]   "','"   price[x]   "','"  currentDate  "','"   rnum   "','"   status   "')";
System.out.println(query);
int i = st.executeUpdate(query);
System.out.println(query);
 

Добавление сведений о ТАБЛИЦЕ в вопрос (взятие его из комментария) для удобства чтения:

 Field           Type            Null    Key     Default Extra 
id              int(11)         NO      PRI     NULL    auto_increment 
cust_name       varchar(255)    YES             NULL 
quantity        int(11)         YES             NULL 
price           double          NO              NULL 
total           double          NO              NULL 
purchase_date   date            YES             NULL 
order_number    int(255)        NO              NULL 
status          varchar(255)    NO              NULL
 

Комментарии:

1. Пожалуйста, предоставьте вывод: describe tbl_reservations .

2. Тип поля Null Ключ по умолчанию Дополнительный идентификатор int(11) НЕТ PRI NULL авто_инкремент cust_name varchar(255) ДА NULL количество int(11) ДА NULL цена double НЕТ NULL итого double НЕТ NULL дата покупки ДА NULL номер заказа int(255) НЕТ NULL статус varchar(255) НЕТ NULL

3. Вы используете hibernate или, может быть, какой-то другой orm?

4. я не знаю, что означает orm или hibernate. извините, вы можете объяснить?

5. выполняется запрос, и он вставляет данные в мою таблицу, но выдает это исключение. я не знаю, почему

Ответ №1:

Переход в спящий режим именования полей с весенней загрузкой

следуйте этому руководству: https://www.baeldung.com/hibernate-field-naming-spring-boot

с помощью spring-boot-starter-data-jpa

Если мы создадим учетную запись вызова объекта

 @Entity
public class Account {
  @Id
  private Long id;
  private String defaultEmail;
}
 

Спящий режим: создать учетную запись таблицы (идентификатор bigint не равен нулю, переменная default_email(255))

в этом случае нам не нужно указывать свойства физической стратегии или неявной стратегии, поскольку мы принимаем значения по умолчанию.