11知足11
2016-04-04 00:54
userDAO类的方法
public static List<User> getAlluser() throws SQLException{ User user=new User(); List<User> users=new ArrayList<User>(); Connection connection=DriverManager.getConnection(); PreparedStatement pst=null; String sqlString="select id,name,sex,age from student "; pst=connection.prepareStatement(sqlString); ResultSet rs=pst.executeQuery(); while (rs!=null) { user.setId(rs.getInt("id")); user.setName(rs.getString("name")); user.setSex(rs.getString("sex")); user.setAge(rs.getInt("age")); users.add(user); } return users; }
测试类:
import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import cn.qy.com.DAO.userDAO; import cn.qy.com.common.User; public class dbTest { public static void main(String[] args) { userDAO userDao=new userDAO(); try { List<User> users = userDao.getAlluser(); System.out.println("-------所有的用户信息如下------------"); for (User u:users) { System.out.println("编号:"+u.getId()+" 姓名:"+u.getName()+ " 性别:"+u.getSex()+" 年龄:"+u.getAge()+"<br>"); } } catch (SQLException e) { e.printStackTrace(); } } }
出现的异常是:
java.sql.SQLException: Before start of result set at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1078) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:975) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:920) at com.mysql.jdbc.ResultSetImpl.checkRowPos(ResultSetImpl.java:855) at com.mysql.jdbc.ResultSetImpl.getInt(ResultSetImpl.java:2710) at com.mysql.jdbc.ResultSetImpl.getInt(ResultSetImpl.java:2851) at cn.qy.com.DAO.userDAO.getAlluser(userDAO.java:74) at dbTest.main(dbTest.java:38)
恩,我一直不明白这两个之间有什么区别,可以详细讲解吗
User user=new User();
改:User user=null;
循环内写
user=new User();
你每次都是给同一个引用赋值。。。
JDBC之 “ 对岸的女孩看过来”
99324 学习 · 856 问题
相似问题