1、跟我学DWR框架技术应用DWR框架实现无刷新页面的数据查询的Web应用示例第三部分1.1 跟我学DWR框架技术应用DWR框架实现无刷新页面的数据查询的Web应用示例(第三部分)1.1.1 对前面的实现进一步改进以访问数据库系统1、数据连接接口和实现类组件2、DAO组件的接口和实现类3、准备数据库数据库表名称为 userInfo,在该表中至少包含userName和userPassWord两个字段。注意:上面的内容已经在前面实现过,因此可以不需要重复!4、修改UserInfoManageBean中的findOneUserInfo方法为下面的代码package com.px1987.webcrm.m
2、odel.imple;import java.lang.reflect.InvocationTargetException;import java.util.List;import mons.beanutils.BeanUtils;import com.px1987.webcrm.dao.imple.UserManageDAOJDBCImple;import com.px1987.webcrm.dao.inter.UserManageDAOInterface;import com.px1987.webcrm.dao.po.UserInfoPO;import com.px1987.webcrm.
3、exception.WebCRMException;import com.px1987.webcrm.model.inter.UserInfoManageInterface;import com.px1987.webcrm.model.vo.UserInfoVO;public class UserInfoManageBean implements UserInfoManageInterface public UserInfoManageBean() Override public boolean checkUserNameValid(String userName) UserManageDAO
4、Interface oneUserManageDAOBean=null; boolean checkUserNameExistResult=false; try oneUserManageDAOBean=new UserManageDAOJDBCImple(); catch (WebCRMException e) e.printStackTrace(); try checkUserNameExistResult=oneUserManageDAOBean.checkOneUserInfoExist(userName); catch (WebCRMException e) e.printStack
5、Trace(); return checkUserNameExistResult; public UserInfoVO findOneUserInfo(String userID) UserManageDAOInterface oneUserManageDAOBean=null; UserInfoPO oneReturnUserInfoPO=null; UserInfoVO oneUserInfoVO=null; try oneUserManageDAOBean=new UserManageDAOJDBCImple(); catch (WebCRMException e) e.printSta
6、ckTrace(); try oneReturnUserInfoPO=oneUserManageDAOBean.queryOneUserInfo(userID); catch (WebCRMException e) e.printStackTrace(); System.out.println(出现了错误:+e.getMessage(); if(oneReturnUserInfoPO=null) return null; oneUserInfoVO=new UserInfoVO(); try BeanUtils.copyProperties(oneUserInfoVO, oneReturnUs
7、erInfoPO); catch (InvocationTargetException e) e.printStackTrace(); catch (IllegalAccessException e) e.printStackTrace(); return oneUserInfoVO; public List findSomeUserInfo(String userSex) /该方法后面再实现 return null; 注意:此时的VO对象中的各个属性来自于数据库表中的记录。5、再执行本应用(1)保证Tomcat和数据库服务启动(2)并且添加MySQL的JDBC驱动程序的*.jar文件(3)此
8、时的UserID则应该是数据库表中存在的(4)输入某个有效的userID,将出现下面的内容(5)如果输入不存在的userID,则出现下面的错误1.1.2 实现按照“用户性别”的查询功能1、编程UserInfoManageBean类中的findSomeUserInfo方法 UserInfoManageBean类最终的程序代码示例如下:package com.px1987.webcrm.model.imple;import java.lang.reflect.InvocationTargetException;import java.util.ArrayList;import java.util.
9、Iterator;import java.util.List;import mons.beanutils.BeanUtils;import com.px1987.webcrm.dao.imple.UserManageDAOJDBCImple;import com.px1987.webcrm.dao.inter.UserManageDAOInterface;import com.px1987.webcrm.dao.po.UserInfoPO;import com.px1987.webcrm.exception.WebCRMException;import com.px1987.webcrm.mo
10、del.inter.UserInfoManageInterface;import com.px1987.webcrm.model.vo.UserInfoVO;public class UserInfoManageBean implements UserInfoManageInterface public UserInfoManageBean() Override public boolean checkUserNameValid(String userName) UserManageDAOInterface oneUserManageDAOBean=null; boolean checkUse
11、rNameExistResult=false; try oneUserManageDAOBean=new UserManageDAOJDBCImple(); catch (WebCRMException e) e.printStackTrace(); try checkUserNameExistResult=oneUserManageDAOBean.checkOneUserInfoExist(userName); catch (WebCRMException e) e.printStackTrace(); return checkUserNameExistResult; public User
12、InfoVO findOneUserInfo(String userID) UserManageDAOInterface oneUserManageDAOBean=null; UserInfoPO oneReturnUserInfoPO=null; UserInfoVO oneUserInfoVO=null; try oneUserManageDAOBean=new UserManageDAOJDBCImple(); catch (WebCRMException e) e.printStackTrace(); try oneReturnUserInfoPO=oneUserManageDAOBe
13、an.queryOneUserInfo(userID); catch (WebCRMException e) e.printStackTrace(); System.out.println(出现了错误:+e.getMessage(); if(oneReturnUserInfoPO=null) return null; oneUserInfoVO=new UserInfoVO(); try BeanUtils.copyProperties(oneUserInfoVO, oneReturnUserInfoPO); catch (InvocationTargetException e) e.prin
14、tStackTrace(); catch (IllegalAccessException e) e.printStackTrace(); return oneUserInfoVO; public List findSomeUserInfo(String userSexType) UserManageDAOInterface oneUserManageDAOBean=null; UserInfoPO oneReturnUserInfoPO=null; List allReturnUserInfoPOs=null; List allUserInfoVOs=new ArrayList(); User
15、InfoVO oneUserInfoVO=null; try oneUserManageDAOBean=new UserManageDAOJDBCImple(); catch (WebCRMException e) e.printStackTrace(); try allReturnUserInfoPOs=oneUserManageDAOBean.querySomeUserInfosByUserSex(Integer.parseInt(userSexType); catch (NumberFormatException e) e.printStackTrace(); catch (WebCRM
16、Exception e) e.printStackTrace(); if(allReturnUserInfoPOs.size()=0) return allUserInfoVOs; Iterator returnUserInfoPOItems=allReturnUserInfoPOs.iterator(); while(returnUserInfoPOItems.hasNext() oneReturnUserInfoPO=(UserInfoPO)returnUserInfoPOItems.next(); oneUserInfoVO=new UserInfoVO(); try BeanUtils
17、.copyProperties(oneUserInfoVO, oneReturnUserInfoPO); catch (InvocationTargetException e) e.printStackTrace(); catch (IllegalAccessException e) e.printStackTrace(); allUserInfoVOs.add(oneUserInfoVO); return allUserInfoVOs; 也可以采用下面的模拟数据public List findSomeUserInfo(String userSex) UserInfoPO oneUserInf
18、oVO=null,twoUserInfoVO=null; if(userSex.equals(1) oneUserInfoVO= new UserInfoPO(); oneUserInfoVO.setUserName(张小明); oneUserInfoVO.setUserPassWord(1234); oneUserInfoVO.setUserSex(1); oneUserInfoVO.setPassWordAsk(你是谁?); oneUserInfoVO.setPassWordAnswer(我是中国人); oneUserInfoVO.setUserMail(abc); oneUserInfo
19、VO.setUserImage(/Resource/PersonImage/Chang.gif); oneUserInfoVO.setRegisterTime(2009-1-12); oneUserInfoVO.setId(1); twoUserInfoVO = new UserInfoPO(); twoUserInfoVO.setUserName(张大明); twoUserInfoVO.setUserPassWord(1234); twoUserInfoVO.setUserSex(1); twoUserInfoVO.setPassWordAsk(你是谁?); twoUserInfoVO.se
20、tPassWordAnswer(我是中国人); twoUserInfoVO.setUserMail(abc); twoUserInfoVO.setUserImage(/Resource/PersonImage/Chang.gif); twoUserInfoVO.setRegisterTime(2009-1-12); twoUserInfoVO.setId(2); else oneUserInfoVO= new UserInfoPO(); oneUserInfoVO.setUserName(张小妹); oneUserInfoVO.setUserPassWord(1234); oneUserInf
21、oVO.setUserSex(0); oneUserInfoVO.setPassWordAsk(你是谁?); oneUserInfoVO.setPassWordAnswer(我是中国人); oneUserInfoVO.setUserMail(abc); oneUserInfoVO.setUserImage(/Resource/PersonImage/LiuMing.gif); oneUserInfoVO.setRegisterTime(2009-1-12); oneUserInfoVO.setId(3); twoUserInfoVO = new UserInfoPO(); twoUserInf
22、oVO.setUserName(张英); twoUserInfoVO.setUserPassWord(1234); twoUserInfoVO.setUserSex(0); twoUserInfoVO.setPassWordAsk(你是谁?); twoUserInfoVO.setPassWordAnswer(我是中国人); twoUserInfoVO.setUserMail(abc); twoUserInfoVO.setUserImage(/Resource/PersonImage/LiuMing.gif); twoUserInfoVO.setRegisterTime(2009-1-12);
23、twoUserInfoVO.setId(4); List allResultList=new ArrayList(); allResultList.add(oneUserInfoVO); allResultList.add(twoUserInfoVO); return allResultList; 2、修改dwr-timeBean.xml文件以增加对List的返回值中元素的类型说明(本示例中的signatures标签, 最后的内容) !CDATA import com.px1987.webcrm.model.imple.CityManageBean; import java.util.Hash
24、Map; import com.px1987.webcrm.model.imple.UserInfoManageBean; import com.px1987.webcrm.model.vo.UserInfoVO; import java.util.List; HashMap CityManageBean.getCityNameInfo(String privanceName); List UserInfoManageBean.findSomeUserInfo(String userSexType) ; 1.1.3 测试本示例的应用效果1、在线测试 http:/127.0.0.1:8080/sshwebcrm/dwr/index.html2、在dwrDemoJavaScript.js中编程下面的showUserInfoBySex函数function showUserInfoBySex(inputedUserSex)userInfoManageBean.findSomeUserInfo(inputedUserSex, showSomeUserInfoByUserSex