2014-12-19 2 views
0

Я пытаюсь получить некоторые данные из моего Db (я использую SQLite) с помощью DAOJava извлечения данных из SQLite возврата объектов вместо значений

public class ClassSectionDAO implements IClassSectionDAO{ 
    @Override 
    public void selectAllClassSection() { 
    d = new DBManager(); 
    sqliteQuery = new SqliteQueries(); 
    d.executeQuery(sqliteQuery.selectAllFrom("classSection")); 
    try{ 
     while(d.getResultSet().next()){ 
      ClassSection classSection = new ClassSection(); 
      classSection.setClassSectionId(d.getResultSet().getString("classSectionId")); 
      classSection.setSchoolClassCode(d.getResultSet().getString("schoolClassCode")); 
      classSection.setClassSectionNumber(d.getResultSet().getInt("classSectionNumber")); 
      classSection.setClassSectionAvailability(d.getResultSet().getString("classSectionAvailability")); 
      classSectionList.add(classSection); 
      System.out.println("classSectionList: " + classSectionList); 
     } 
    } 
    catch(Exception e){ 
     Logger.getLogger(ClassSectionDAO.class.getName()).log(Level.SEVERE, null, e); 
     classSectionList = null; 
    } 
    finally{ 
     d.closeDatabaseConnection(); 
    } 
    } 
} 

Все, что я получаю список объектов подобный

classSectionList: [[email protected], [email protected], [email protected]] 

Что мне делать, чтобы получить значения вместо этого?

PS: Если вы хотите увидеть больше кода, дайте мне знать,

ответ

1
for(ClassSection c : classSectionList) { 
    System.out.println(c.getSchoolClassCode()); 
    // print other attributes 
} 

EDIT:

Firt решение:

public class ClassSectionDAO implements IClassSectionDAO{ 
    @Override 
    public void selectAllClassSection() { 
    d = new DBManager(); 
    sqliteQuery = new SqliteQueries(); 
    d.executeQuery(sqliteQuery.selectAllFrom("classSection")); 
    try{ 
     while(d.getResultSet().next()){ 
      ClassSection classSection = new ClassSection(); 
      classSection.setClassSectionId(d.getResultSet().getString("classSectionId")); 
      classSection.setSchoolClassCode(d.getResultSet().getString("schoolClassCode")); 
      classSection.setClassSectionNumber(d.getResultSet().getInt("classSectionNumber")); 
      classSection.setClassSectionAvailability(d.getResultSet().getString("classSectionAvailability")); 
      classSectionList.add(classSection); 

      // Solution of ProgrammingIsAwsome 
      System.out.println("classSectionList: " + classSection.getSchoolClassCode()); 
     } 
    } 
    catch(Exception e){ 
     Logger.getLogger(ClassSectionDAO.class.getName()).log(Level.SEVERE, null, e); 
     classSectionList = null; 
    } 
    finally{ 
     d.closeDatabaseConnection(); 
    } 
    } 
} 

Второе решение:

public class ClassSectionDAO implements IClassSectionDAO{ 
    @Override 
    public void selectAllClassSection() { 
    d = new DBManager(); 
    sqliteQuery = new SqliteQueries(); 
    d.executeQuery(sqliteQuery.selectAllFrom("classSection")); 
    try{ 
     while(d.getResultSet().next()){ 
      ClassSection classSection = new ClassSection(); 
      classSection.setClassSectionId(d.getResultSet().getString("classSectionId")); 
      classSection.setSchoolClassCode(d.getResultSet().getString("schoolClassCode")); 
      classSection.setClassSectionNumber(d.getResultSet().getInt("classSectionNumber")); 
      classSection.setClassSectionAvailability(d.getResultSet().getString("classSectionAvailability")); 
      classSectionList.add(classSection); 
     } 
     // Print the list after the while 
     for(ClassSection c : classSectionList) { 
      System.out.println(c.getSchoolClassCode()); 
      // print other attributes 
     } 
    } 
    catch(Exception e){ 
     Logger.getLogger(ClassSectionDAO.class.getName()).log(Level.SEVERE, null, e); 
     classSectionList = null; 
    } 
    finally{ 
     d.closeDatabaseConnection(); 
    } 
    } 
} 
+0

Вы правы. Но для всех 3 записей я получаю то, что у меня есть в первой записи три раза! Это '[A1, A, 1, null, A1, A, 1, null, A1, A, 1, null]' Как мне получить все другие ценности? –

1

Думаю, вы просто сделали опечатку, как вы уже сказали в своем вопросе: я получаю список объектов (типа ClassSection). Это понятно, потому что вы печатаете список объектов.

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

System.out.println("classSectionList: " + classSection.getSchoolClassCode()); 

Если вы хотите напечатать значения всех результаты (после того, как все результаты будут обработаны), просто добавьте решение Michaël после цикла wile.

Смежные вопросы