因为你事先声明了:User user = new User();后续无论数据库是否查到数据,返回的都是这个不为null的user啊。如果要达到期望的结果,可以改写成如下写法即可:User user = null;....rs = prep.executeQuery();while(rs.next()){ user = new User(); user.setXXX..}return user;