2015-12-07 3 views
0

Я хотел бы получить данные из выбранного значения в ComboBox с помощью MySQL. Однако в JList он отображает все данные формы songpick без получения значения из ComboBox. Что-то не так с моей командой sql?Данные JList и ComboBox из базы данных mysql

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); 
     } 

ответ

2

Было бы полезно, если ваш отфильтрованный набор результатов из базы данных по имени клиента, к примеру ...

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: Я не знаю вас, база данных ры, так что я только гадать, в отношениях

Вы также должны взглянуть на The try-with-resources Statement для получения более подробной информации о том, как управлять своими ресурсами и SQL Where Clause

+0

Большое вам спасибо, это помогает мне решить мою ошибку. –

1

Вы должны иметь пункт WHERE и установить значение, которое вы хотите получить от

Например SELECT songpick FROM customer WHERE <columnName> = ? и установить значение, которое вам нужно, перед оператором executeQuery с st.setString(1, "Foo");