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.
有人可以详细解释我应该做什么以及为什么吗?
只需在插入之前加入所有字符串。
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)
甚至会足够好,但上述解决方案让您更自由地加入流派。
| 归档时间: |
|
| 查看次数: |
17703 次 |
| 最近记录: |