2016-03-11 1 views
2
ResultSet rs = dbmd.getSchemas(); 
while(rs.next()) { 
    String DbNames = rs.getString("TABLE_SCHEM"); 
} 

Я пытаюсь сохранить значение DbNames и использовать его позже. Я попытался с помощью ArrayListСохранение значений внутри цикла while с использованием JDBC

ResultSet rs = dbmd.getSchemas(); 
ArrayList<String> dbs = new ArrayList<>(); 
while(rs.next()) { 
    dbs.add(rs.getString("TABLE_SCHEM")); 
} 
for(String[] s : dbs) 
{ 
    System.out.println(Arrays.toString(s)); 
} 

Я новичок в программировании и использовать StackOverflow ресурсы, чтобы исправить мою проблему, но я все еще возникают проблемы. Пожалуйста, помогите мне понять это.

+0

Какие проблемы вы испытываете? – 4castle

+0

Я должен предупредить вас, не исправить свой код в вопросе, как только вы поймете, что с ним не так, позвольте ему остаться неправдой. Таким образом, другие, кто рассматривает этот вопрос, поймут, в чем проблема, и почему ответы на них уместны. – 4castle

ответ

1

В настоящее время ваш ArrayList является raw type, потому что вы не указали тип данных для ArrayList. Изменение ArrayList декларации к generic type с помощью

ArrayList<String> dbs = new ArrayList<>(); 

Таким образом, когда вы пытаетесь получить доступ к значениям позже, они будут String вместо Object.

Ваш новый код будет

ResultSet rs = dbmd.getSchemas(); 
ArrayList<String> dbs = new ArrayList<>(); 
while(rs.next()) { 
    dbs.add(rs.getString("TABLE_SCHEM")); 
} 
for(String s : dbs) { 
    System.out.println(s); 
} 
+0

Спасибо !!! Работает как шарм – fugazi

+0

Добро пожаловать! Пожалуйста, отметьте это как принятый ответ тогда :) – 4castle

0

Создание ArrayList, чтобы сохранить данные, полученные из результирующего набора, как показано ниже:

ResultSet resultset = ; 
ArrayList<String> arrayList = new ArrayList<String>(); 
while (resultset.next()) {    
    arrayList.add(resultset.getString('TABLE_SCHEM')); 
}