java - 如何将 Java ArrayList 插入到 MySQL 表中?

标签 java mysql jdbc arraylist

谁能告诉我如何将 Arraylist 的值作为单个字符串插入 MySQL 表中?

例如,将“crime, drama, Action”插入到“featuredfilms_INFO”表的“genres”列中。

这是我的代码的一部分:

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

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

谁能详细解释我应该做什么以及为什么?

最佳答案

在插入之前连接所有的字符串。

 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());

甚至可能

 preparedStmt.setString (2, genre.toString());

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

关于java - 如何将 Java ArrayList 插入到 MySQL 表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24534630/

相关文章:

mysql - 谁能帮我做一个 MySQL 存储过程

java - Flyway 仅迁移我的两个配置模式之一

java - 通过Java程序连接Oracle

java - Applet 和动态类加载问题

java - libGdx 平台特定代码

没有 pk 的 MySQL Workbench 编辑列

java - Java 中 JTable 的 JDBC TableModel?

java - 将调用哪个方法?

java - 如何在struts应用程序中将log4j的日志文件保留在WEB-INF下

MySql 完整索引搜索不起作用