Усечение данных: усеченное неверное ДВОЙНОЕ значение: ‘IntegerProperty [значение: 7]’

#java #mysql #javafx

#java #mysql #javafx

Вопрос:

Я получаю эту ошибку при попытке удалить из моего графического интерфейса javafx, который я создал. И я не знаю, как это решить. Ошибка: com.mysql.cj.jdbc.исключения.MysqlDataTruncation: усечение данных: усеченное неверное ДВОЙНОЕ значение: ‘IntegerProperty [значение: 7]’

Часть моего кода:

setAllClear();

     SalesTable getSelectedRow = salesTableView.getSelectionModel().getSelectedItem();
    String sqlQueryDelete = "delete from sales where id = '"   getSelectedRow.getSalesTableId()   "';";
    try {
        connection = database.getConnection();
        statement = connection.createStatement();


        statement.executeUpdate(sqlQueryDelete);
 

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

1. Ваш класс модели реализован неправильно. getSalesTableId() Метод должен возвращать an int , а не an IntegerProperty . У вас должен быть salesTableIdProperty() метод, возвращающий IntegerProperty . Кроме того, похоже, что это должен быть числовой столбец в базе данных, поэтому значение не должно заключаться в кавычки. И, наконец, никогда не создавайте операторы SQL с подобной конкатенацией строк; PreparedStatement вместо этого используйте a .

2. Спасибо. Это работает