У меня есть строковый массив, который содержит 500 акций. Теперь у меня есть таблица в моей базе данных mysql, которая содержит символ для более 1000 акций с их именем. То, что я хотел бы сделать, это получить символ этих 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] отображалось подстановочным символом (%), как бы это сделать.
Batching предназначен для DML statemnts, а не для запросов. Вам нужно запустить SELECT для каждого идентификатора, который вы хотите получить, или использовать 'WHERE IN (...)' (который не может использоваться в подготовленном заявлении) –
см. Http://stackoverflow.com/questions/7899543/in -java-can-readystatement-addbatch-be-used-for-select-queries –
@ Riddhish.Chaudhari. Ссылка в ответе на вышеупомянутый вопрос, похоже, имеет некоторые ошибки. @ ahorsewithnoname, - Так что я должен поставить выберите оператор в цикл for и запустите его. – user1092042