如何显示一个JDialog,其项目名称低于数据库中的特定数量?

时间:2019-02-17 11:24:22

标签: java hibernate swing netbeans orm

如何显示项目名称低于特定数量的JDialog?我需要在NetBeans IDE中使用Hibernate 5.4和Apache Derby开发的Java数据库应用程序中使用它。我是一个新手,将不胜感激!

下面您可以看到数据库表的实体关系图:

Click link to open image

这是JDialog,其中会显示低于特定限制的项目:

Clink link to open image

这是用户输入数量限制的窗口:

Clink link to open image

用于输入限制的代码段:

public class SetQuantityLimit extends javax.swing.JFrame{
public static int limit
...
private void enterButtonActionPerformed(java.awt.event.ActionEvent evt){
limit = Integer.paerseInt(this.JTextField.getText());

作为静态变量 limit 应该比该方法和类的寿命更长,不是吗?因此,当我在另一个类中调用此变量时,在应用程序中打开股票窗口时应显示消息...

public class LimitMessage extends javax.swing.JDialog

...它应该有它的价值,对吗?这就是我所拥有的:

private void FillData()
DefaultTableModel dtm = new DefaultTableModel();
dtm.addColumn("Name")
List<Items> result = null;
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session = null;
Transaction tx = null;
session = sessionFactory.openSession();
tx = session.beginTransaction();
Query query = session.createQuery("...");
result = query.list();
tx.commit();
session.close();

//itemModel is an instance of ItemModel() DAO class with methods such as create, update, delete etc., see picture below
for (Items item : this.itemModel.findAll()){
dtm.addRow(new Object[]{...});
this.JTable.setModel(dtm);}
...

此方法应在JTable中显示低于项目限制的项目名称。问题在于,项目数量是使用TRANSACTIONS.Flow和ADVICENOTE.In_Or_Out列和表关联来计算的,而不是存储在数据库中的,这可能会出现问题。我很迷茫,我不确定是否应该在这里重新计算数量,还是可以使用从库存角度进行计算的库存视图。也许我应该修改整个数据库结构以使其更合理...任何建议和帮助都将不胜感激!

Items.java

package classes;

public class Items  implements java.io.Serializable {


     private int itemId;
     private String name;
     private Integer netPrice;
     private Integer vatRate;
     private Categories category;

    public Items() {
    }

    public Items(int itemId, String name, Integer netPrice, Integer vatRate, Categories category) {
        this.itemId = itemId;
        this.name = name;
        this.netPrice = netPrice;
        this.vatRate = vatRate;
        this.category = category;
    }

    public int getItemId() {
        return this.itemId;
    }

    public void setItemId(int itemId) {
        this.itemId = itemId;
    }
    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getNetPrice() {
        return this.netPrice;
    }

    public void setNetPrice(Integer netPrice) {
        this.netPrice = netPrice;
    }
    public Integer getVatRate() {
        return this.vatRate;
    }

    public void setVatRate(Integer vatRate) {
        this.vatRate = vatRate;
    }

    public Categories getCategory() {
        return category;
    }

    public void setCategory(Categories category) {
        this.category = category;
    }


}

Items.hbm.xml

 <?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="classes.Items" table="ITEMS" schema="APP" optimistic-lock="version">
        <id name="itemId" type="int" column="ITEM_ID">
            <generator class="native" />
        </id>
        <property name="name" type="string" column="NAME" length="100"/>
        <property name="netPrice" type="java.lang.Integer" column="NET_PRICE"/>
        <property name="vatRate" type="java.lang.Integer" column="VAT_RATE"/>
        <many-to-one name="category" class="classes.Categories" fetch="select" column="CATEGORY_ID" not-null="true" lazy="false"/>
    </class>
</hibernate-mapping>

0 个答案:

没有答案