500 개의 주식 이름을 보유하고있는 문자열 배열이 있습니다. 이제 나는 그들의 이름과 함께 1000 개 이상의 주식을 상징하는 나의 mysql 데이터베이스에 테이블을 가지고있다. 내가 뭘하고 싶은지는 내가 가지고있는 테이블에서 그 500 종목의 상징을 찾아내는 것이다. 다음 코드를 시도했습니다.jdbc에서 데이터 가져 오기
Class.forName("com.mysql.jdbc.Driver");
Connection conn=DriverManager.getConnection("jdbc:mysql//localhost/mydatabase","user","pass");
PreparedStatement stmt = conn.prepareStatement("SELECT (NAME) FROM stocks1 WHERE FULLNAME =?");
for(int i1=0;i1<i;i1++)
{
stmt.setString(1, name[i1]);
stmt.addBatch();
}
ResultSet t=stmt.executeQuery();
while(t.next())
System.out.println(t.getString("NAME"));
하지만 작동하지 않습니다. 아무것도 인쇄되지 않습니다. 나는 stmt.addBatch()에서 실수를하고 있다고 생각한다. 또한 와일드 카드 문자 (%)로 이름 [i1]을 표시하려면 어떻게해야합니까?
일괄 처리는 쿼리가 아닌 DML 구문입니다. 검색 할 각 ID에 대해 SELECT를 실행하거나 준비된 명령문에서 사용할 수없는'WHERE IN (...) '을 사용해야합니다. –
참조 http://stackoverflow.com/questions/7899543/in -java-can-prepared-statement-select-for-select-queries –
@ Riddhish.Chaudhari- 위의 질문에 대한 대답의 링크는 약간의 오류가있는 것 같습니다. @ ahorsewithnoname, select 문을 for 루프에 넣고 실행하십시오. – user1092042