如何将数据库中的列值获取到jLabel

时间:2018-02-21 06:27:22

标签: java swing

在我的数据库表中,有一个包含不同数据的列。我想要的是检索该列中的所有数据并将它们放在JLabel上。即在我的数据库中我有。

name
Aaron
Baldwin
Gabriel
Harold

现在我有一个空的jLabel但是如何从数据库中检索值并在插入新数据时将每个值放在标签中?插入新数据时,需要创建包含数据的新jLabel。

我尝试了什么。

private void getNames() {

    String sql = "SELECT * FROM details";
    try
    {
        con = Db.getConnection();
        pst = con.prepareStatement(sql);
        rs = pst.executeQuery();

        while(rs.next())
        {
           jLabel1.setText(rs.getString("name"));
        }
    }
}

1 个答案:

答案 0 :(得分:4)

如果您使用Table,下面的代码将:

index.html

优点:

  1. 自动计算的列表大小。没有必要更新但是当你去正常的jlabel你必须创建jlabel想要显示的数量 但不知道大小。
  2. 您可以绑定类中的属性(变量)。
  3. 请注意,你可以根据你可以使用你想要的条件使用GlazedLists绑定。

    下面是Jlabel绑定的代码,

    public class Test extends JPanel{
    
        private static final long serialVersionUID = 1L;
    
        List<Object> objects = new ArrayList<Object>();
    
        JTable billTable = new JTable();
        JTableBinding<UiBillItem, UiBill, JTable> jTableBinding;
    
        private void init(){
            objects = getNames();
        }
    
        private List<Object> getNames() {
            // for better to bind, it should return list of details object
            List<Object> list = new ArrayList<Object>();
            return list;
        }
    
        private void initDataBindings(){
    
            // for table binding
            BeanProperty<Test, List<Object>> uiBillBeanProperty = BeanProperty.create("objects");
            jTableBinding = SwingBindings.createJTableBinding(UpdateStrategy.READ_WRITE, this, uiBillBeanProperty, billTable);
    
            BeanProperty<Test, Float> uiBillItemBeanProperty_3 = BeanProperty.create("quantity"); // property need to show 
            jTableBinding.addColumnBinding(uiBillItemBeanProperty_3).setColumnName("Qty");
            // can create multiple property like this 
    
        }
    }