2016-03-06 3 views
0

У меня возникли проблемы с получением сервлета для работы в моем динамическом веб-проекте. У меня есть метод в моем классе StudentUtils, который отлично работает. Он подключается к моей базе данных sql и выводит содержимое на консоль. Смотри ниже.Сервлет для доступа к DAO и вызова рабочего метода (java)

public class StudentUtils { 

public static void main (String[] args) throws Exception { 

getAllStudents(); 

} 

public static void getAllStudents() throws Exception { 

    try { 

     Connection dbase = getConnection(); 
     String mysql = "select * from course"; 

     PreparedStatement output = dbase.prepareStatement(mysql); 

     ResultSet rs = output.executeQuery(); 

     while(rs.next()) { 

      ArrayList <Student> list = new ArrayList<Student>(); 

      Student s = new Student(null, null, null); 

      s.setStudentID(result.getString(1)); 
      s.setStudentName(result.getString(2)); 
      s.setStudentLevel(result.getString(3)); 

      list.add(s); 

      System.out.println(s.toString()); 

      System.out.println("added"); } } 

    catch(Exception e) { 

      System.out.println("could not add"); 
    } 

Этот метод при запуске печатает каждый из студентов на экран консоли и сообщение added. Однако мне нужно создать сервлет, который запускает этот метод.

До сих пор в моем сервлете я создал экземпляр моего dao (studentUtils) и пустой список массивов, но затем я застрял в попытке заполнить список массивов с помощью метода в dao. Смотри ниже.

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

    StudentUtils studetUtils = new StudentUtils(); 
    ArrayList <Student> list = new ArrayList<Student>(); 

Любая помощь в получении моего сервлета, чтобы заполнить этот список массива, используя мой метод в дао будет оценен.

+1

Не следует getAllStudents() вернуть список? – OldProgrammer

ответ

0

Возможно, ваш метод getAllStudents() должен вернуть List<Student>. Также обратите внимание, что в вашей текущей реализации в цикле создается List, воссоздавая его на каждой итерации, что, вероятно, не является поведением, которое вы хотите. Вы должны создать его вне цикла.

Кроме того, вы должны, вероятно, закрыть свои ресурсы, как Connection после их использования.

+0

Спасибо. Я добавил список в свой метод и установил возврат. Я также переместил список за пределы цикла. Что мне нужно добавить к моему сервлету для повторения этого метода? – JavaNewbie

+0

@JavaNewbie: вы можете вызвать 'List list = StudentUtils.getAllStudents()' в своем сервлете, а затем вывести что-то или (лучше) использовать JSP, как описано в дубликате вопрос. – user140547

+0

Когда я делаю это и запускаю сервлет, я получаю 'System.out.println (« не могу добавить »)' исключение из DAO (StudentUtils). – JavaNewbie

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

  • Нет связанных вопросов^_^