Можно ли создать общий CRUD в JavaFX - PullRequest
0 голосов
/ 26 февраля 2019

Я занимаюсь разработкой приложения JavaFx, и мне нужно использовать CRUD для нескольких классов моделей.Я хочу создать общий интерфейс, а затем хотел бы реализовать для этих классов.Я не смог найти ни одного примера, где это реализовано с помощью JavaFX.Я не использую DAO или Hibernate, это просто соединение JDBC.

Что я сделал до сих пор

public interface CrudInterface<T, PK extends Serializable> {
    void create(T t);
    T read(PK id);
    void update(T t);
    void delete(T t);
    ObservableList<T> getAll();
}

Реализация:

    public class ProductImplementation implements CrudInterface, ProductInterface{

    //Other Methods
.
.
.
        @Override
            public void create(Product product) {
                try {
                    DatabaseConnection localConnection = new DatabaseConnection();
                    connection = localConnection.getLocalConnection();
                    connection.setAutoCommit(false);
                    String query = "INSERT INTO products (product_name, bar_code, product_size, product_cost, product_net_dealer_price, productQuantity, product_alert_quantity, product_tax, product_image, product_invoice_detail, product_category_id, product_subcategory_id, suplier_name) VALUES  (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
                    preparedStatement = connection.prepareStatement(query);
                    preparedStatement.setString(1, product.getName());
                    preparedStatement.setString(2, product.getBarcode());
                    preparedStatement.setString(3, product.getSize());
                    preparedStatement.setInt(4, product.getPrice());
                    preparedStatement.setString(5, product.getNetDealerPrice());
                    preparedStatement.setInt(6, product.getQuantity());
                    preparedStatement.setInt(7, product.getAlertQuantity());
                    preparedStatement.setInt(8, product.getTax());
                    preparedStatement.setString(9, product.getImage());
                    preparedStatement.setString(10, product.getProductInvoiceDetail());
        //            preparedStatement.setInt(11, product.getCategories().getCategoryID());
        //            preparedStatement.setInt(12, product.getSubCategories().getSubCategoryID());
        //            preparedStatement.setInt(13, product.getSuppliers().getSupplierID());
                    preparedStatement.execute();
                    connection.commit();
                } catch (SQLException e) {
                    try {
                        connection.rollback();
                    } catch (SQLException ex) {
                        Logger.getLogger(ProductImplementation.class.getName()).log(Level.SEVERE, null, ex);
                    }
                    Logger.getLogger(ProductImplementation.class.getName()).log(Level.SEVERE, null, e);
                } finally {
                    try {
                        connection.close();
                        preparedStatement.close();
                    } catch (SQLException ex) {
                        Logger.getLogger(ProductImplementation.class.getName()).log(Level.SEVERE, null, ex);
                    }
                }
            }
        }

Я застрял и не могупередать объект класса модели для создания данных.Любая помощь или предложения будут высоко оценены.

Спасибо

Отредактировано Подпись моего метода создания в интерфейсе CRUD

void create(T t);

Теперь мне нужнозаменить T на мой класс модели при реализации интерфейса.т.е. Product, Category, SubCategory и т. д.

У меня есть несколько классов с CRUD, и я не хочу повторять эти методы в каждом из классов Java отдельно, для этого мне нужно создать Общий интерфейс .

...