运用BeanUtils类简化request和resultset转换
使用BeanUtils类简化request和resultset转换
转:http://xdwangiflytek.iteye.com/blog/1358275
当提交表单时,如果没有使用Struts等框架的话,你的代码可能是这样
- User user=new User();
- user.setUsername(request.getParameter("username"));
- user.setPassword(request.getParameter("password"));
- user.setEmail(request.getParameter("email"));
User user=new User(); user.setUsername(request.getParameter("username")); user.setPassword(request.getParameter("password")); user.setEmail(request.getParameter("email"));
如果表单项比较多,每次都要这样写是不是很烦?
OK,使用commons-beanutils吧。你只需要这样写
- try {
- Map params=request.getParameterMap();
- BeanUtils.populate(user , params);
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
try { Map params=request.getParameterMap(); BeanUtils.populate(user , params); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }
那么处理ResultSet时,如果没有Hibernate等框架,你的代码可能是这样
- if (rs.next()) {
- User user = new User();
- user.setId(rs.getLong("id"));
- user.setUsercode(rs.getString("usercode"));
- user.setSex(rs.getString("sex"));
- user.setPassword(rs.getString("password"));
- user.setPhone(rs.getString("phone"));
- user.setEmail(rs.getString("email"));
- users.add(user);
- }
if (rs.next()) { User user = new User(); user.setId(rs.getLong("id")); user.setUsercode(rs.getString("usercode")); user.setSex(rs.getString("sex")); user.setPassword(rs.getString("password")); user.setPhone(rs.getString("phone")); user.setEmail(rs.getString("email")); users.add(user); }
是不是也有点烦?OK,这样来写吧
- ResultSetDynaClass rsdc = new ResultSetDynaClass(rs);
- Iterator rows = rsdc.iterator();
- ArrayList lists = new ArrayList();
- while (rows.hasNext()) {
- User user = new User();
- DynaBean row = (DynaBean) rows.next();
- BeanUtils.copyProperties(user, row);
- lists.add(user)
- }
ResultSetDynaClass rsdc = new ResultSetDynaClass(rs); Iterator rows = rsdc.iterator(); ArrayList lists = new ArrayList(); while (rows.hasNext()) { User user = new User(); DynaBean row = (DynaBean) rows.next(); BeanUtils.copyProperties(user, row); lists.add(user) }