Struts开发技巧__教程 |
|
日期:2007-5-20 0:38:05 人气:62 [大 中 小] |
|
|
|
ArrayList rs = DBManager.Select(sql.toString(), User.class.getName()); /** * 如果确定返回的只有一个对象,则可以使用 * */ User user=(User)rs.get(0); } catch (Exception ex) { throw new ServletException(ex.getMessage()); } 取出来的数据可以存放在session或page等里,供jsp页面调用,方法为session.setAttribute(“user”,user1) … Insert或Update等操作 使用DBManager里面的executeSql(String sql)方法,如果是批量处理,使用executeBatchSql(String[] sqls)方法,返回成功标志为Constants.OPERATE_SUCCESS 失败标志为Constants.OPERATE_FAILED 暂无其它信息返回 ResultSet对象向Hashtable集合对象的转化,使用select(String sql)方法: 除了可以使用DBManager的Select把查询结果转为对象以外,还可以使用以前的直接使用ResultSet对象的方式,不过这里返回的数据集对象为Hashtable; Hashtable存放的数据结构为: columnName1 ? ArrayList1(该字段的结果集) columnName2 ? ArrayList2(该字段的结果集) … 系统中使用该方法的比较多的是用在生成下拉框数据,从select方法返回的Hashtable取到字段值,并生成LabelValueBean,具体方法如下: /**公用函数 Hashtable 转换成 ArrayList (LabelValueBean)*/ private static ArrayList hashToLVB(Hashtable ht, String id, String name,boolean hasBlank) { if (ht!=null){ ArrayList al = new ArrayList(); ArrayList alId = (ArrayList) ht.get(id.toUpperCase()); ArrayList alName = (ArrayList) ht.get(name.toUpperCase()); int iLen = alId.size(); if (hasBlank) al.add(new LabelValueBean("未知", "-1")); for (int i = 0; i < iLen; i++) { al.add(new LabelValueBean( (String) alName.get(i), (String) alId.get(i))); } return al; } else{ return null; } } AutoSetForm(String sql, Object frm)方法介绍: a) 该方法可以返回一个查询数据库后已对其中的属性赋值的对象,使用方法如下: User user=DBManager. AutoSetForm(sql,new User()); sql为查询语句 b) 该方法还可以对页面操作后的Form进行赋值,比如在页面上提交一个对某条记录进行编辑的操作,当Action得到该条记录的Id号并查询数据库成功后,需要把各个详细信息set到ActionForm的属性变量中去,这个时候就可以使用该方法,方法如下: form= DBManager. AutoSetForm(sql,form); form为Action的excute方法中传入的ActionForm
7. 调用存储过程 使用DBManager中的execProc(String procName,ArrayList procPrts)方法 procName为存储过程名,procPrts是该存储过程的入口参数集,返回的是ProcOuts的对象,其中有Result和ExceptionInfo两个属性,表示返回的处理标记和异常信息(如果有的话) 8. 数据操作返回信息的处理 在对数据操作完成后,需要返回操作是否成功等信息,具体步骤如下: 使用属性文件中的“messages.comm”这个key,可以对该key添加具体返回信息 程序中使用“ActionMessages”这个对象,java程序如下: ActionMessages ams = new ActionMessages(); … //执行结果 ProcOuts pResult=null; //是否调用成功 if (pResult.getResult() == -1) { ams.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("message.common", pResult.getExceptionInfo())); } if (!ams.isEmpty()) { saveMessages(request, ams); } Jsp中调用方法如下:
|
|
出处:本站原创 作者:佚名 |
|
|