如何在Java中将Arraylist值存储到数据库中?

时间:2010-07-08 08:58:53

标签: java postgresql

我想将Arraylist值存储到java中的数据库(postgresql数据库)中。

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

我想将详细信息存储在数据库ProcessInfo表中,其中包含以下字段:Process Name,Process Status,Email Sent,SMS Sent,LastModifiedTime。 ActiveProcess包含进程名称为server.exe, Receiver.exe .etc,其进程状态为true,Email Sent,SMS Sent为false。

InActiveProcess包含进程名称SmsReceiver.exe, sender.exe .etc,其进程状态为false,Email Sent,SMS Sent为true。

怎么做...?提前谢谢。

2 个答案:

答案 0 :(得分: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
  //

}

将进程存储在DB中,使用:

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

或者您可以将TYPE传递给方法以获取活动或非活动进程。

答案 1 :(得分:1)

最好的方法是保持简单并避免数据库设计异常。所以我建议使用id

在主表引用的两个列(id,value)的新表