问题描述
各位技术牛人,请帮小弟解决一下这个问题CannotissuedatamanipulationstatementswithexecuteQuery()代码如下:publicUserselectUser(Stringusername){Connectionconn=null;PreparedStatementst=null;ResultSetrs=null;Useruser=null;try{Stringsql="select*fromuserwhereusername=?";user=newUser();conn=JdbcUtil.getConnection();st=conn.prepareStatement(sql);st.setString(1,username);rs=st.executeQuery();while(rs.next()){if(username.equals(rs.getString("username"))){user.setUsername(rs.getString("username"));user.setPassword(rs.getString("password"));user.setEmail(rs.getString("email"));user.setMajor(rs.getString("major"));user.setSex(rs.getString("sex"));user.setTruename(rs.getString("truename"));user.setPhoto(rs.getString("photo"));user.setView_photo(rs.getString("view_photo"));user.setTel(rs.getString("tel"));}}}catch(SQLExceptione){e.printStackTrace();}finally{JdbcUtil.close(rs);JdbcUtil.close(st);JdbcUtil.close(conn);}returnuser;}
解决方案
解决方案二:
不能执行query,原因:executeQuery()语句是用于产生单个结果集,而你返回的是多个结果集
解决方案三:
publicUserselectUser(Stringusername)你改为publicList<User>selectUser(Stringusername)然后再定义一个List集合:List<User>list=newArrayList<User>();并且在遍历结果集时,改为:if(username.equals(rs.getString("username"))){Useruser=newUser();user.setUsername(rs.getString("username"));user.setPassword(rs.getString("password"));user.setEmail(rs.getString("email"));user.setMajor(rs.getString("major"));user.setSex(rs.getString("sex"));user.setTruename(rs.getString("truename"));user.setPhoto(rs.getString("photo"));user.setView_photo(rs.getString("view_photo"));user.setTel(rs.getString("tel"));list.add(user);}最后returnlist;即可。。。
解决方案四:
我现在是想返回一个User不过很谢谢你!
解决方案五:
什么数据库?
解决方案六:
MySQL数据库
解决方案七:
看看数据库的驱动和数据库的版本最好一致