Извлечение данных из jdbc - PullRequest
0 голосов
/ 27 марта 2012

У меня есть строковый массив, который содержит название 500 акций.Теперь у меня есть таблица в моей базе данных mysql, которая содержит символ более 1000 акций вместе с их именем.То, что я хотел бы сделать, это получить символ этих 500 акций из таблицы, которую я имею.Я пробовал следующий код

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] сопровождалось символом подстановки (%), как бы я это сделал.

Ответы [ 2 ]

1 голос
/ 27 марта 2012

Для включения подстановочного знака вы можете сделать, как показано ниже.

В своем утверждении select удалите = и добавьте LIKE

PreparedStatement stmt = conn.prepareStatement("SELECT (NAME) FROM stocks1 WHERE FULLNAME LIKE ?");   

add% в методе setString.

ps.setString(1, name[i1]+ "%");

Кроме того, для вопроса о пустых строках, пожалуйста, проверьте, совпадают ли регистры обоих столбцов сравнения, они должны быть в верхнем или нижнем. Если это не так, вы можете конвертировать, сравнивая, как показано ниже.

SELECT (NAME) FROM stocks1 WHERE upper(FULLNAME) LIKE ?   

ps.setString(1, upper(name[i1])+ "%");
1 голос
/ 27 марта 2012

Вы можете создать таблицу для акций в вашем строковом массиве и выполнить объединение с вашей таблицей stocks1.

Допустим, таблица для ваших массивов называется stocksperuser с одним столбцом FULLNAME, код выглядит следующим образом:

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 is in (SELECT FULLNAME FROM arraystocks)"); 
ResultSet t=stmt.executeQuery(); 
while(t.next()) {
    System.out.println(t.getString("NAME"));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...