[英]get items from database according to jlist selected values and store in array
我的數據庫中有一個Users
表,表中的phone no
和region
。 在我的GUI中,我有一個JList
,用戶可以從中選擇一個或多個區域,因此我需要向具有匹配區域的電話號碼發送消息。
我面臨的問題是從數據庫中檢索電話號碼。 這是我的代碼
final JList listRegion = new JList(list);
listRegion.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
listRegion.setVisibleRowCount(3);
JScrollPane scroll = new JScrollPane(listRegion);
scroll.setBounds(113, 254, 123, 50);
frame.getContentPane().add(scroll);
我正在存儲這樣的選定列表值
Object[] areaList = listRegion.getSelectedValues();
現在,我需要檢索與區域列表中的區域匹配的所有數字及其對應的區域,並將它們存儲在數組中。 我已經嘗試過這樣的事情。 但這似乎是錯誤的。
for( int i=0; i<areaList.length ; i++){
String sql2 = "select phone_no from users where region = areaList["+i+"]";
result = statement.executeQuery(sql2);
while(result.next()){
String numbers = result.getString(1);
//System.out.println(numbers);
}
}
我對數組不好。 因此無法做到這一點。 請以正確的方式指導我。
您無法從sql訪問areaList
變量。 可能您需要類似的東西(未經測試):
String sql2 = "select phone_no from users where region in (";
for( int i=0; i<areaList.length ; i++){
sql2 += "\'"+ areaList[i]+"\'";
if (i<areaList.length-1)
sql2+=",";
}
sql+=")";
result = statement.executeQuery(sql2);
while(result.next()){
String numbers = result.getString(1);
//System.out.println(numbers);
}
還要注意,您應該使用PreparedStatement
,而不是手動構建sql,這樣,您將受到sql注入問題的保護。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.