2010-07-08 370 views
1

我想在Java中將Arraylist值存儲到數據庫(postgresql數據庫)中。如何在Java中將Arraylist值存儲到數據庫中?

ArrayList<String> ActiveProcess = new ArrayList<String>(); 
     ArrayList<String> InActiveProcess = new ArrayList<String>(); 

我想在一個數據庫表ProcessInfo細節存儲與以下字段進程名,進程狀態,郵件發送,發送短信,最後修改時間。 ActiveProcess包含進程名稱爲server.exe, Receiver.exe .etc,其進程狀態爲true,發送郵件,發送的SMS爲false。

InActiveProcess包含的進程名稱爲SmsReceiver.exe, sender.exe .etc其進程狀態爲false,已發送電子郵件,SMS發送爲true。

如何做到這一點..?預先感謝。

+1

這可能是矯枉過正,但考慮使用像Hibernate這樣的東西來管理你的持久對象。它有一個初始的學習曲線,但會讓你的生活更輕鬆。 – Tim 2010-07-08 09:02:01

回答

2

構建模型類,以促進在數據庫存儲過程中的主要信息表中引用:在DB

public class Process { 
    public static enum TYPE { ACTIVE , NOT_ACTIVE } ; 

    private ArrayList<String> names ; 
    private String emailSent emailSent ; 
    private Date lastModification ; 
    private Boolean status ; 
    private TYPE type ; 

    // 
    // provide constructors + setter + getter methods 
    // 

} 

存儲過程,使用方法:

public void saveProcess (Process p) { 
    ArrayList<String> name = p.getProcessesName(); // or you can get iterator from the arraylist 
    String emailSent = p.getEmailSent(); 
    Date lastModification = p.getLastModification(); 
    Boolean status = p.getStatus(); 

    // 
    // use SQL insert statements to save info 
    // 

} 

來獲取所有流程:

public ArrayList<Process> getAllProcesses() { 
    ArrayList<Process> processes = new ArrayList<Process>(); 

    // 
    // use SQL select statement to get processes 
    // 

    return proceses ; 
} 

,或者您可以通過TYP E到獲取活動或非活動進程的方法。

1

最好的方法是保持簡單並避免非正常的數據庫設計。所以我建議一個新表有兩個列(ID,值),通過使用ID

相關問題