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