我无法让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中的方法填充此数组列表的帮助将不胜感激。
答案 0 :(得分:0)
您的方法getAllStudents()
可能应该返回List<Student>
。另请注意,在当前实现中,List
是在循环内创建的,在每次迭代中重新创建它,这可能不是您想要的行为。你应该在循环之外创建它。
除此之外,您应该在使用它们之后关闭资源,例如Connection
。