[英]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.