查詢語句報錯
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(); } ???? } }
出現(xiàn)的異常是:
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)
2016-04-05
恩,我一直不明白這兩個之間有什么區(qū)別,可以詳細講解嗎
2016-04-04
User?user=new?User();
改:User user=null;
循環(huán)內(nèi)寫
user=new?User();
你每次都是給同一個引用賦值。。。