반응형
누군가가 Arraylist의 값을 MySQL 테이블에 단일 문자열로 삽입하는 방법을 친절하게 말해 줄 수 있습니까?
예를 들어 "featuredfilms_INFO"테이블의 "genres"열에 "crime, drama, Action"을 삽입합니다.
이것은 내 코드의 일부입니다.
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);
.
.
.
}
내 문제는 문자열 유형이 아니기 때문에 장르 에 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());
어쩌면
preparedStmt.setString (2, genre.toString());
충분하지만 위의 솔루션은 장르에 참여하는 방법을 더 자유롭게 제공합니다.
참조 페이지 https://stackoverflow.com/questions/24534630
반응형
'MySql' 카테고리의 다른 글
MySQL 열을 오른쪽으로 조정하는 방법 (0) | 2020.12.04 |
---|---|
MySQL (PHP / MYSQL) mysql_real_escape_string이 작동하지 않음 (0) | 2020.12.04 |
MySQL OR 및 AND와 where 절을 사용한 Laravel eloquent SQL 쿼리 (0) | 2020.12.04 |
MySQL 2D 배열로 결과 집합 (0) | 2020.12.04 |
MySQL-선택 후 업데이트 (0) | 2020.12.04 |
댓글