簡體   English   中英

來自MySQL數據庫的數據JList和ComboBox

[英]Data JList and ComboBox from mysql database

我將使用MySQL從ComboBox上的選定值中獲取數據。 但是,在JList中,它顯示了songpick列中的所有數據,而沒有從ComboBox中獲取值。 我的sql命令有什么問題嗎?

FillCombo()方法:

        PreparedStatement st = con.prepareStatement("select * from customer");
        ResultSet rs = st.executeQuery();
        while(rs.next()){
            String CustomerName= rs.getString("customername");
            jComboBox1.addItem(CustomerName);
        }

FillList()方法:

        DefaultListModel dlm = new DefaultListModel();
        PreparedStatement st = con.prepareStatement("select songpick from customer");
        ResultSet rs = st.executeQuery();
        if(rs.next()){
            String songpick=rs.getString("songpick");
            dlm.addElement(songpick);
            jList1.setModel(dlm);
        }

如果您用客戶的名字從數據庫中過濾了結果集,這將很有幫助,例如...

DefaultListModel dlm = new DefaultListModel();
try (PreparedStatement st = con.prepareStatement("select songpick from customer where customername=?")) {
    String customerName = (String)jComboBox1.getSelectedItem();
    st.setString(1, customerName);
    try (ResultSet rs = st.executeQuery()) {
        if (rs.next()) {

            String songpick = rs.getString("songpick");
            dlm.addElement(songpick);

        }
        jList1.setModel(dlm);
    }
} catch (SQLException exp) {
    exp.printStackTrace();
}

ps:我不知道您的數據庫結構,所以我只是在猜測關系

您還應該查看try-with-resources語句,以獲取有關如何管理資源和SQL Where子句的更多詳細信息。

您需要具有WHERE子句並設置要從中獲取的值

例如SELECT songpick FROM customer WHERE <columnName> = ? 並使用st.setString(1, "Foo");executeQuery語句之前設置所需的值st.setString(1, "Foo");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM