调用UserDao里的方法失败

目的:在一个Servlet中使用UserDao的方法从t_user表中查询到所有用户,并将该List集合对象存放在request对象中,最后跳转到users页面
但是调用UserDao类的方法queryAll()时出错。
UserDao类代码(DB类是写好的,数据库也已经连接)

public class UserDao {
    private com.XXX.jdbc.DB db;
    private Connection connection;

    public UserDao(String dbFile) {
        this.db = new com.XXX.jdbc.DB(dbFile);
        this.connection = this.db.getConnection();
    }
    public ListXXX.jdbc.User> queryAll() {
        Statement stmt = null;
        ResultSet rs = null;
        ArrayList users = new ArrayList();

        try {
            stmt = this.connection.createStatement();
            String sql = "SELECT * FROM t_user";
            rs = stmt.executeQuery(sql);

            while(rs.next()) {
                com.XXX.jdbc.User user = new com.XXX.jdbc.User();
                user.setId(rs.getInt(1));
                user.setUserName(rs.getString(2));
                user.setPwd(rs.getString(3));
                user.setGender(rs.getString(4));
                user.setCategory(rs.getString(5));
                user.setInterest(rs.getString(6));
                user.setPhoto(rs.getString(7));
                user.setRegTime(new Date(rs.getString(8)));
                users.add(user);
            }

            ArrayList var7 = users;
            return var7;
        } catch (SQLException var10) {
            var10.printStackTrace();
        } finally {
            DB.close((Connection)null, stmt, (ResultSet)null);
        }

        return null;
    }

Servlet代码

public class userList extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        UserDao userDao = new UserDao("text05");
        //查询
        List<User> userList = new ArrayList<>();
        userList = userDao.queryAll();
        //userDao.queryAll();即使只执行该句也会失败,即调用UserDao的方法不成功
        //将list对象存放在request对象中
        req.setAttribute("userList",userList);
        //System.out.println(req.getAttribute("userList"));
        //请求转发
        req.getRequestDispatcher("users.jsp").forward(req,resp);
    }
}

报错500

java.lang.IllegalArgumentException
    java.util.Date.parse(Date.java:617)
    java.util.Date.(Date.java:274)
    com.XXX.jdbc.UserDao.queryAll(UserDao.java:99)
    com.XXX.jdbc.userList.service(userList.java:18)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:582)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

请问这样的错误应该怎么改?

user.setRegTime(new Date(rs.getString(8)));
这里rs.getString(8)得到的字符串应该不是日期值,导致转换失败。比如为空什么的,这里再加一层try..catch容错

UserDao类的方法queryAll()中的Date日期格式转换错误吧

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632