如何将 Java ArrayList 插入 MySQL 表?

mOn*_*Ona 5 java mysql jdbc arraylist

有人可以告诉我如何将 Arraylist 的值作为单个字符串插入 MySQL 表中吗?

例如,将“犯罪、戏剧、动作”插入表“featuredfilms_INFO”的“流派”列中。

这是我的代码的一部分:

int i = 0;
List<String> genre = new ArrayList<String>();
.
.
.
Elements elms1 = doc.select("div.infobar"); 
Elements links1 = elms1.select("a[href]");
for (Element link1 : links1){
    if (link1.attr("href").contains("/genre/")) {
        genre.add(links1.get(i).text());
        i++;
    }
}
System.out.println("movie genres:" + genre); 
.
.
try {
     String query = "INSERT into featuredfilms_INFO (movieId, genres)" + "VALUES (?, ?)";
     PreparedStatement preparedStmt = conn.prepareStatement(query);
     preparedStmt.setString (1, ID);
     preparedStmt.setString (2, genre);
   .
   .
   .
}
Run Code Online (Sandbox Code Playgroud)

我的问题是我不能setString用于流派,因为它不是字符串类型。我有点困惑,因为一开始我将流派定义为字符串,但经过一番搜索后,我发现在 Java 中,对于动态数组,我必须使用ArrayList.

有人可以详细解释我应该做什么以及为什么吗?

Eri*_*ler 5

只需在插入之前加入所有字符串。

 String comma="";
 StringBuilder allGenres = new StringBuilder();
 for (String g: genre) {
    allGenres.append(comma);
    allGenres.append(g);
    comma = ", ";
 }

 String query = "INSERT into featuredfilms_INFO (movieId, genres)" + "VALUES (?, ?)";
 PreparedStatement preparedStmt = conn.prepareStatement(query);
 preparedStmt.setString (1, ID);
 preparedStmt.setString (2, allGenres.toString());
Run Code Online (Sandbox Code Playgroud)

甚至会

 preparedStmt.setString (2, genre.toString());
Run Code Online (Sandbox Code Playgroud)

甚至会足够好,但上述解决方案让您更自由地加入流派。