Servlet访问DAO并调用工作方法(java)

时间:2016-03-06 14:21:22

标签: java servlets arraylist dao dynamic-websites

我无法让servlet在我的动态Web项目中工作。我的StudentUtils类中有一个方法可以正常工作。它连接到我的sql数据库并将内容打印到控制台。见下文。

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。但是,我需要创建一个运行此方法的servlet。

到目前为止,在我的servlet中,我创建了一个dao(studentUtils)实例和一个空数组列表,但后来我试图使用dao中的方法填充数组列表。见下文。

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

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

任何有助于我的servlet使用我在dao中的方法填充此数组列表的帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您的方法getAllStudents()可能应该返回List<Student>。另请注意,在当前实现中,List是在循环内创建的,在每次迭代中重新创建它,这可能不是您想要的行为。你应该在循环之外创建它。

除此之外,您应该在使用它们之后关闭资源,例如Connection