簡體   English   中英

根據jlist選定的值從數據庫中獲取項目並存儲在數組中

[英]get items from database according to jlist selected values and store in array

我的數據庫中有一個Users表,表中的phone noregion 在我的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.

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