构建BBS论坛系统项目用户信息管理模块业务层组件的实现示例
- 格式:pdf
- 大小:285.58 KB
- 文档页数:7
1.1BBS论坛系统项目前台用户管理模块中的DAO组件的实现示例1.1.1前台用户管理模块中的DAO组件的实现过程1、在项目中添加一个HibernateUtil类(1)类名称为HibernateUtil,包名称为com.px1987.webbbs.hibernatedao(2)编程该类2、针对UserManageDAOInterface的DAO接口提供一个实现类(1)类名称为UserManageDAOHibernateImple,包名称为com.px1987.webbbs.hibernatedao、并且继承Observable类(2)编程该实现类3、关于事务的应用问题在开发以数据库为平台的系统中,单用户操作的系统越来越少了,基本上都是多用户操作,并发访问数据库。
在这种情况下,要想保证业务的正常进行,保证数据库的一致性是关键。
比如银行的转账系统,处理不当的话,会造成一个用户的资金减少了,另一个用户的资金却没有增加。
保证数据库的一致性需要对多用户并发访问数据库进行合理的调度,调度的基本单位是事务。
我们知道,事务是用户对数据库的操作序列,事务具有原子性,一致性,隔离性和持续性。
我们可以认为在并发访问的环境下,在同一时刻有多个事务在运行。
调度的基本原则是一个事务应该感觉不到其他事务的存在,它按照正常的业务逻辑进行处理。
并发操作造成的不一致性表现主要有以下3种,我们在编程的时候需要特别注意:(1)丢失修改2个事务同时读入同一个数据并进行修改,如果不加限制,就会出现一个事务的提交破坏另一事务的提交的情况。
比如2个终端同时进行机票的销售工作,每个事务同时都读取到目前剩余的票数,然后各自进行减去一,这样由于提交有先后,造成2个终端销售出去2张机票,结果数据库中只是减去了一张。
(2)不可重复读一个事务读入一批数据,在再次读同样的一批数据之前,有别的事务对这些数据进行了修改,结果第一个事务再次读入它们的时候,出现了和第一次读的时候不一致的情况。
基于Java的BBS论坛系统的设计与实现一、概述随着信息技术的飞速发展和互联网的广泛普及,网络交流已成为人们获取信息、分享经验和知识、进行互动沟通的重要渠道。
论坛(Bulletin Board System,简称BBS)作为一种古老而有效的网络交流方式,经过多年的发展和演变,已经成为互联网的重要组成部分。
基于Java的BBS论坛系统正是为了满足现代网络交流需求,提供一个稳定、高效、可扩展的在线交流平台。
Java作为一种成熟、稳定、跨平台的编程语言,具有丰富的生态系统和广泛的应用场景。
使用Java开发BBS论坛系统,不仅能够确保系统的可移植性和可扩展性,还能够利用Java社区提供的丰富资源和支持,快速实现论坛系统的核心功能,如用户管理、帖子发布、回复评论、主题分类、权限控制等。
基于Java的BBS论坛系统的设计与实现,将重点关注系统的需求分析、架构设计、功能实现、性能优化等方面。
在系统需求分析阶段,将深入剖析用户需求,明确系统的功能和特点在架构设计阶段,将合理规划系统的整体结构,确保系统的稳定性和可扩展性在功能实现阶段,将使用Java语言和相关技术实现论坛系统的各项功能在性能优化阶段,将通过各种技术手段提升系统的性能和用户体验。
本文旨在详细介绍基于Java的BBS论坛系统的设计与实现过程,包括系统的需求分析、架构设计、功能实现、性能优化等方面,以期为相关领域的开发人员提供参考和借鉴。
同时,本文还将探讨未来论坛系统的发展趋势和挑战,展望未来的发展方向。
1. 背景介绍:简述BBS论坛系统的起源、发展和现状,以及其在互联网社区中的作用。
随着互联网的飞速发展和普及,网络社区成为了人们获取信息、交流意见、分享经验的重要场所。
Bulletin Board System(简称BBS)论坛系统以其独特的交互性和开放性,成为了网络社区中最为活跃和重要的组成部分之一。
BBS论坛系统起源于20世纪80年代的电子布告栏系统(Electronic Bulletin Board),主要用于发布和讨论计算机相关的信息。
基于J2EE Struts框架的课程设计实训项目——《BBS论坛系统》——业务层中的用户信息管理组件的功能实现及对应的单元测试用例(第1/2部分)1.1.1构建用户信息管理业务层相关的组件1、添加UserInfoManageInterface接口(1)在项目中添加UserInfoManageInterface接口(2)设计该UserInfoManageInterface接口package com.px1987.webbbs.model;import java.util.ArrayList;import java.util.Map;import com.px1987.webbbs.dao.AdminUserInfoPO;import erInfoPO;import com.px1987.webbbs.exception.WebBBSException;public interface UserInfoManageInterface{public boolean doBatchDeleteUserInfo(ArrayList deletedUserIDs) throws WebBBSException;public boolean doUserLogin(UserInfoVO oneUserInfoVO) throws WebBBSException;public boolean doUserRegister(UserInfoVO oneUserInfoVO) throws WebBBSException;public boolean doUpdateOneUserInfo(UserInfoVO oneUserInfoVO) throws WebBBSException;public boolean doUpdateOneRegisterUserPassWord(UserInfoVO oneUserInfoVO,String newPassWord) throws WebBBSException;public boolean doUpdateOneAdminUserPassWord(UserInfoVO oneUserInfoVO,String newPassWord) throws WebBBSException;public boolean doCheckUserNameExist(String userName,Integer type_User_Admin) throws WebBBSException;public String doGetOneRegisterUserPassWord(UserInfoVO oneRegisterUserInfoVO) throws WebBBSException;public String doGetOneAdminUserPassWord(UserInfoVO oneAdminUserInfoVO) throws WebBBSException;public UserInfoVO doGetOneRegisterUserInfo(String registerUserID) throws WebBBSException;public UserInfoVO doGetMaxIDUserInfo() throws WebBBSException;public UserInfoVO doGetOneRegisterUserInfo(UserInfoVO oneRegisterUserInfoVO) throws WebBBSException;public UserInfoVO doGetOneRegisterUserInfoByName(String userNme) throws WebBBSException;public UserInfoVO doGetOneAdminUserInfo(String adminUserID) throwsWebBBSException;public UserInfoVO doGetOneAdminUserInfo(UserInfoVO oneAdminUserInfoVO) throws WebBBSException;public UserInfoVO doGetOneUserInfo(String userName,String userPassWord, Integer type_User_Admin) throws WebBBSException;public ArrayList<String> doGetAllUserNameInfo(String userName,Integer type_User_Admin ) throws WebBBSException;public int doGetTotalRegisterUserCounter() throws WebBBSException;public boolean doDeleteOneRegisterUserInfo(String registerUserID) throws WebBBSException;public boolean doDeleteOneRegisterUserInfo(UserInfoVO oneRegisterUserInfoVO) throws WebBBSException;public boolean doDeleteOneAdminUserInfo(String adminUserID) throws WebBBSException;public boolean doDeleteOneAdminUserInfo(UserInfoVO oneAdminUserInfoVO) throws WebBBSException;public ArrayList<UserInfoVO> doGetAllRegisterUserInfo() throws WebBBSException;public ArrayList<UserInfoVO> doGetSomeRegisterUserInfo(Map registerUserInfos,int userType) throws WebBBSException;public ArrayList<UserInfoVO> doGetOnePageRegisterUserInfo(PageStateVO_PrototypeonePageStateVO_Prototype,int userType,Map registerUserInfos) throws WebBBSException;public ArrayList<UserInfoVO> doGetOnePageAllUserInfo(PageStateVO_Prototype onePageStateVO_Prototype) throws WebBBSException;public ArrayList<UserInfoVO> doGetAllAdminUserInfo() throws WebBBSException;public ArrayList<UserInfoVO> doGetSomeAdminUserInfo(Map adminUserInfos) throws WebBBSException;}2、为该接口提供实现类UserInfoManageImple继承于java.util.Observable类,并编程该实现类package com.px1987.webbbs.model;import ng.reflect.InvocationTargetException; import java.util.ArrayList;import java.util.Iterator;import java.util.Map;import java.util.Observable;import mons.beanutils.BeanUtils; import com.px1987.webbbs.config.ClassNameConfig;import com.px1987.webbbs.constant.WebBankAllConstants;import com.px1987.webbbs.dao.AdminUserInfoPO;import com.px1987.webbbs.dao.AdminUserManageDAOInterface;import erInfoPO;import erManageDAOInterface;import com.px1987.webbbs.exception.WebBBSException;import com.px1987.webbbs.util.LogInfoFactory;public class UserInfoManageImple extends Observable implements UserInfoManageInterface{private UserManageDAOInterface userInfoManageDAOImpleBean = null;private AdminUserManageDAOInterface adminUserInfoManageDAOImpleBean= null;public void setAdminUserInfoManageDAOImpleBean(AdminUserManageDAOInterface adminUserInfoManageDAOImpleBean) { this.adminUserInfoManageDAOImpleBean = adminUserInfoManageDAOImpleBean;}public void setUserInfoManageDAOImpleBean(UserManageDAOInterface userInfoManageDAOImpleBean) {erInfoManageDAOImpleBean = userInfoManageDAOImpleBean;}public UserInfoManageImple(){//本构造方法在应用Spring IOC获得目标DAO组件对象时应用}/*String adminManageDAOJDBCImpleClassName=null;String userManageDAOJDBCImpleClassName=null;public UserInfoManageImple() throws WebBBSException {//本构造方法在应用可配置化的工厂模式时获得目标DAO组件对象时应用userManageDAOJDBCImpleClassName=ClassNameConfig.getProperty("userManageDAOJDBCImple.className");userInfoManageDAOImpleBean=UserManageDAOFactory.newUserManageDAOBean(userManageDAOJDBCImpleClassName);adminManageDAOJDBCImpleClassName=ClassNameConfig.getProperty("adminManageDAOJDBCImple.className");adminUserInfoManageDAOImpleBean=AdminUserManageDAOFactory.newAdminManageDAOBean(adminManageDAOJDBCImpleClassName);}*/public boolean doBatchDeleteUserInfo(ArrayList deletedUserIDs) throws WebBBSException{return false;}public boolean doCheckUserNameExist(String userName, Integer type_User_Admin) throws WebBBSException {boolean OKOrNot=false;switch(type_User_Admin.intValue()){case 1:UserInfoPO oneUserInfoPO=userInfoManageDAOImpleBean.selectOneUserInfoByName(userName);if(oneUserInfoPO==null){OKOrNot=false;}else{OKOrNot=true;}break;case 2:AdminUserInfoPO oneAdminUserInfoPO=adminUserInfoManageDAOImpleBean.selectOneAdminUserInfoByName(userName);if(oneAdminUserInfoPO==null){OKOrNot=false;}else{OKOrNot=true;}break;default:OKOrNot=false;}return OKOrNot;}public boolean doDeleteOneAdminUserInfo(String adminUserID) throws WebBBSException {boolean OKOrNot=false;OKOrNot=adminUserInfoManageDAOImpleBean.deleteOneAdminUserInfo(adminUserID);return OKOrNot;}public boolean doDeleteOneAdminUserInfo(UserInfoVO oneAdminUserInfoVO) throws WebBBSException {String adminUserID=oneAdminUserInfoVO.getId();return doDeleteOneAdminUserInfo(adminUserID);}public boolean doDeleteOneRegisterUserInfo(String registerUserID)throws WebBBSException {boolean OKOrNot=false;OKOrNot=userInfoManageDAOImpleBean.deleteOneUserInfo(registerUserID);return OKOrNot;}public boolean doDeleteOneRegisterUserInfo(UserInfoVO oneRegisterUserInfoVO) throws WebBBSException {String registerUserID=oneRegisterUserInfoVO.getId();return doDeleteOneRegisterUserInfo(registerUserID);}public ArrayList<UserInfoVO> doGetAllAdminUserInfo() throws WebBBSException{ ArrayList allAdminUserInfoPO=adminUserInfoManageDAOImpleBean.selectAllAdminUserInfo();ArrayList allAdminUserInfoVO=new ArrayList();Iterator allPOItem=allAdminUserInfoPO.iterator();while(allPOItem.hasNext()){AdminUserInfoPO oneAdminUserInfoPO=(AdminUserInfoPO)allPOItem.next();UserInfoVO oneUserInfoVO=new UserInfoVO();try {BeanUtils.copyProperties(oneUserInfoVO, oneAdminUserInfoPO);}catch (IllegalAccessException e){int logImpleKind=Integer.parseInt(ClassNameConfig.getProperty("logImpleKind"));this.addObserver(LogInfoFactory.newLogInstance(logImpleKind));this.setChanged(); //注意要设置变化点notifyObservers(e);throw new WebBBSException("在UserInfoManageImple类的doGetAllAdminUserInfo方法中利用BeanUtils类进行对象拷贝时出现了IllegalAccessException异常");}catch (InvocationTargetException e) {int logImpleKind=Integer.parseInt(ClassNameConfig.getProperty("logImpleKind"));this.addObserver(LogInfoFactory.newLogInstance(logImpleKind));this.setChanged(); //注意要设置变化点notifyObservers(e);throw new WebBBSException("在UserInfoManageImple类的doGetAllAdminUserInfo方法中利用BeanUtils类进行对象拷贝时出现了InvocationTargetException异常");}}return allAdminUserInfoVO;}public ArrayList<UserInfoVO> doGetAllRegisterUserInfo() throws WebBBSException{ArrayList allRegisterUserInfoPO=userInfoManageDAOImpleBean.selectAllUserInfo();ArrayList allRegisterUserInfoVO=new ArrayList();Iterator allPOItem=allRegisterUserInfoPO.iterator();while(allPOItem.hasNext()){UserInfoPO oneUserInfoPO=(UserInfoPO)allPOItem.next();UserInfoVO oneUserInfoVO=new UserInfoVO();try {BeanUtils.copyProperties(oneUserInfoVO, oneUserInfoPO);}catch (IllegalAccessException e){int logImpleKind=Integer.parseInt(ClassNameConfig.getProperty("logImpleKind"));this.addObserver(LogInfoFactory.newLogInstance(logImpleKind));this.setChanged(); //注意要设置变化点notifyObservers(e);throw new WebBBSException("在UserInfoManageImple类的doGetAllRegisterUserInfo方法中利用BeanUtils类进行对象拷贝时出现了IllegalAccessException异常");}catch (InvocationTargetException e) {int logImpleKind=Integer.parseInt(ClassNameConfig.getProperty("logImpleKind"));this.addObserver(LogInfoFactory.newLogInstance(logImpleKind));this.setChanged(); //注意要设置变化点notifyObservers(e);throw new WebBBSException("在UserInfoManageImple类的doGetAllRegisterUserInfo方法中利用BeanUtils类进行对象拷贝时出现了InvocationTargetException异常");}allRegisterUserInfoVO.add(oneUserInfoVO);}return allRegisterUserInfoVO;}public ArrayList<String> doGetAllUserNameInfo(String userName,Integer type_User_Admin) throws WebBBSException {boolean OKOrNot=false;ArrayList allUserNameArrayList=null;// userInfoManageDAOImpleBean=new UserManageDAOJDBCImple();switch(type_User_Admin.intValue()){case 1:allUserNameArrayList=userInfoManageDAOImpleBean.selectAllRegisterUserNameInfo(userName);break;case 2:allUserNameArrayList=adminUserInfoManageDAOImpleBean.selectAllAdminUserNameInfo(userName);break;default:allUserNameArrayList=null;}return allUserNameArrayList;}public UserInfoVO doGetOneAdminUserInfo(String adminUserID)throws WebBBSException{UserInfoVO oneAdminUserInfoVO=new UserInfoVO();AdminUserInfoPO oneAdminUserInfoPO=adminUserInfoManageDAOImpleBean.selectOneAdminUserInfo(adminUserID);try { //利用Bean拷贝BeanUtils.copyProperties(oneAdminUserInfoVO, oneAdminUserInfoPO);}catch (IllegalAccessException e){int logImpleKind=Integer.parseInt(ClassNameConfig.getProperty("logImpleKind"));this.addObserver(LogInfoFactory.newLogInstance(logImpleKind));this.setChanged(); //注意要设置变化点notifyObservers(e);throw new WebBBSException("在UserInfoManageImple类的doGetOneAdminUserInfo方法中利用BeanUtils类进行对象拷贝时出现了IllegalAccessException异常");}catch (InvocationTargetException e){int logImpleKind=Integer.parseInt(ClassNameConfig.getProperty("logImpleKind"));this.addObserver(LogInfoFactory.newLogInstance(logImpleKind));this.setChanged(); //注意要设置变化点notifyObservers(e);throw new WebBBSException("在UserInfoManageImple类的doGetOneAdminUserInfo方法中利用BeanUtils类进行对象拷贝时出现了InvocationTargetException异常");}return oneAdminUserInfoVO;}public UserInfoVO doGetOneAdminUserInfo(UserInfoVO oneAdminUserInfoVO) throws WebBBSException{String adminUserID=oneAdminUserInfoVO.getId();return doGetOneAdminUserInfo(adminUserID);}public String doGetOneAdminUserPassWord(UserInfoVO oneAdminUserInfoVO) throws WebBBSException {String adminUserName=oneAdminUserInfoVO.getUserName();AdminUserInfoPO oneAdminUserInfoPO=adminUserInfoManageDAOImpleBean.selectOneAdminUserInfoByName(adminUserName);return oneAdminUserInfoPO.getUserPassWord();}public UserInfoVO doGetOneRegisterUserInfoByName(String userNme) throws WebBBSException{UserInfoVO oneUserInfoVO=null;UserInfoPO oneUserInfoPO=null;// userInfoManageDAOImpleBean=new UserManageDAOJDBCImple();oneUserInfoVO=new UserInfoVO();oneUserInfoPO=userInfoManageDAOImpleBean.selectOneUserInfoByName(userNme);oneUserInfoVO.setUserName(oneUserInfoPO.getUserName());oneUserInfoVO.setUserPassWord(oneUserInfoPO.getUserPassWord());oneUserInfoVO.setUserType(oneUserInfoPO.getUserType());oneUserInfoVO.setAliaoName(oneUserInfoPO.getAliaoName());oneUserInfoVO.setPassWordAsk(oneUserInfoPO.getPassWordAsk());oneUserInfoVO.setUserImage(oneUserInfoPO.getUserImage());oneUserInfoVO.setPassWordAnswer(oneUserInfoPO.getPassWordAnswer());oneUserInfoVO.setUserMail(oneUserInfoPO.getUserMail());oneUserInfoVO.setRegisterTime(oneUserInfoPO.getRegisterTime());oneUserInfoVO.setUserID(oneUserInfoPO.getId());oneUserInfoVO.setUserResume(oneUserInfoPO.getUserResume());oneUserInfoVO.setType_User_Admin(new Integer(1));oneUserInfoVO.setUserSex(oneUserInfoPO.getUserSex());oneUserInfoVO.setUserBirthDay(oneUserInfoPO.getUserBirthDay());oneUserInfoVO.setUserComeFrom(oneUserInfoPO.getUserComeFrom());oneUserInfoVO.setContactMethod(oneUserInfoPO.getContactMethod());oneUserInfoVO.setUserSign(oneUserInfoPO.getUserSign());oneUserInfoVO.setEmailVisible(oneUserInfoPO.getEmailVisible());oneUserInfoVO.setAcceptAdvise(oneUserInfoPO.getAcceptAdvise());try { //利用Bean拷贝类实现简单地拷贝BeanUtils.copyProperties(oneUserInfoVO,oneUserInfoPO);}catch (IllegalAccessException e){int logImpleKind=Integer.parseInt(ClassNameConfig.getProperty("logImpleKind"));this.addObserver(LogInfoFactory.newLogInstance(logImpleKind));this.setChanged(); //注意要设置变化点notifyObservers(e);throw new WebBBSException("在UserInfoManageImple类的doGetOneRegisterUserInfoByName方法中利用BeanUtils类进行对象拷贝时出现了IllegalAccessException异常");}catch (InvocationTargetException e) {int logImpleKind=Integer.parseInt(ClassNameConfig.getProperty("logImpleKind"));this.addObserver(LogInfoFactory.newLogInstance(logImpleKind));this.setChanged(); //注意要设置变化点notifyObservers(e);throw new WebBBSException("在UserInfoManageImple类的doGetOneRegisterUserInfoByName方法中利用BeanUtils类进行对象拷贝时出现了InvocationTargetException异常");}return oneUserInfoVO;}public UserInfoVO doGetOneRegisterUserInfo(String registerUserID) throws WebBBSException{UserInfoVO oneUserInfoVO=null;UserInfoPO oneUserInfoPO=null;// userInfoManageDAOImpleBean=new UserManageDAOJDBCImple();oneUserInfoVO=new UserInfoVO();oneUserInfoPO=userInfoManageDAOImpleBean.selectOneUserInfo(registerUserID);oneUserInfoVO.setUserName(oneUserInfoPO.getUserName());oneUserInfoVO.setUserPassWord(oneUserInfoPO.getUserPassWord());oneUserInfoVO.setUserType(oneUserInfoPO.getUserType());oneUserInfoVO.setAliaoName(oneUserInfoPO.getAliaoName());oneUserInfoVO.setPassWordAsk(oneUserInfoPO.getPassWordAsk());oneUserInfoVO.setUserImage(oneUserInfoPO.getUserImage());oneUserInfoVO.setPassWordAnswer(oneUserInfoPO.getPassWordAnswer());oneUserInfoVO.setUserMail(oneUserInfoPO.getUserMail());oneUserInfoVO.setRegisterTime(oneUserInfoPO.getRegisterTime());oneUserInfoVO.setId(oneUserInfoPO.getId());oneUserInfoVO.setUserResume(oneUserInfoPO.getUserResume());oneUserInfoVO.setType_User_Admin(new Integer(1));oneUserInfoVO.setUserSex(oneUserInfoPO.getUserSex());oneUserInfoVO.setUserBirthDay(oneUserInfoPO.getUserBirthDay());oneUserInfoVO.setUserComeFrom(oneUserInfoPO.getUserComeFrom());oneUserInfoVO.setContactMethod(oneUserInfoPO.getContactMethod());oneUserInfoVO.setUserSign(oneUserInfoPO.getUserSign());oneUserInfoVO.setEmailVisible(oneUserInfoPO.getEmailVisible());oneUserInfoVO.setAcceptAdvise(oneUserInfoPO.getAcceptAdvise());try { //利用Bean拷贝类实现简单地拷贝BeanUtils.copyProperties(oneUserInfoVO,oneUserInfoPO);}catch (IllegalAccessException e){int logImpleKind=Integer.parseInt(ClassNameConfig.getProperty("logImpleKind"));this.addObserver(LogInfoFactory.newLogInstance(logImpleKind));this.setChanged(); //注意要设置变化点notifyObservers(e);throw new WebBBSException("在UserInfoManageImple类的doGetOneRegisterUserInfo方法中利用BeanUtils类进行对象拷贝时出现了IllegalAccessException异常");}catch (InvocationTargetException e) {int logImpleKind=Integer.parseInt(ClassNameConfig.getProperty("logImpleKind"));this.addObserver(LogInfoFactory.newLogInstance(logImpleKind));this.setChanged(); //注意要设置变化点notifyObservers(e);throw new WebBBSException("在UserInfoManageImple类的doGetOneRegisterUserInfo方法中利用BeanUtils类进行对象拷贝时出现了InvocationTargetException异常");}return oneUserInfoVO;}public UserInfoVO doGetOneRegisterUserInfo(UserInfoVO oneRegisterUserInfoVO)throws WebBBSException {String userNme=oneRegisterUserInfoVO.getUserName();return doGetOneRegisterUserInfoByName(userNme);}public String doGetOneRegisterUserPassWord(UserInfoVO oneRegisterUserInfoVO) throws WebBBSException {String userNme=oneRegisterUserInfoVO.getUserName();UserInfoVO oneUserInfoVO=doGetOneRegisterUserInfoByName(userNme);return oneUserInfoVO.getUserPassWord();}public UserInfoVO doGetOneUserInfo(String userName, String userPassWord, Integer type_User_Admin)throws WebBBSException {UserInfoVO oneUserInfoVO=null;// userInfoManageDAOImpleBean=new UserManageDAOJDBCImple();oneUserInfoVO=new UserInfoVO();switch(type_User_Admin.intValue()){case 1:UserInfoPO oneUserInfoPO=userInfoManageDAOImpleBean.selectOneUserInfoData(userName, userPassWord);oneUserInfoVO.setUserName(oneUserInfoPO.getUserName());oneUserInfoVO.setUserPassWord(oneUserInfoPO.getUserPassWord());oneUserInfoVO.setUserType(oneUserInfoPO.getUserType());oneUserInfoVO.setAliaoName(oneUserInfoPO.getAliaoName());oneUserInfoVO.setPassWordAsk(oneUserInfoPO.getPassWordAsk());oneUserInfoVO.setUserImage(oneUserInfoPO.getUserImage());oneUserInfoVO.setPassWordAnswer(oneUserInfoPO.getPassWordAnswer());oneUserInfoVO.setUserMail(oneUserInfoPO.getUserMail());oneUserInfoVO.setRegisterTime(oneUserInfoPO.getRegisterTime());oneUserInfoVO.setId(oneUserInfoPO.getId());oneUserInfoVO.setUserResume(oneUserInfoPO.getUserResume());oneUserInfoVO.setType_User_Admin(new Integer(1));oneUserInfoVO.setUserSex(oneUserInfoPO.getUserSex());oneUserInfoVO.setUserBirthDay(oneUserInfoPO.getUserBirthDay());oneUserInfoVO.setUserComeFrom(oneUserInfoPO.getUserComeFrom());oneUserInfoVO.setContactMethod(oneUserInfoPO.getContactMethod());oneUserInfoVO.setUserSign(oneUserInfoPO.getUserSign());oneUserInfoVO.setEmailVisible(oneUserInfoPO.getEmailVisible());oneUserInfoVO.setAcceptAdvise(oneUserInfoPO.getAcceptAdvise());try { //利用Bean拷贝类实现简单地拷贝BeanUtils.copyProperties(oneUserInfoVO,oneUserInfoPO);}catch (IllegalAccessException e){int logImpleKind=Integer.parseInt(ClassNameConfig.getProperty("logImpleKind"));this.addObserver(LogInfoFactory.newLogInstance(logImpleKind));this.setChanged(); //注意要设置变化点notifyObservers(e);throw new WebBBSException("在UserInfoManageImple类的doGetOneUserInfo方法中利用BeanUtils类进行对象拷贝时出现了IllegalAccessException异常");}catch (InvocationTargetException e){int logImpleKind=Integer.parseInt(ClassNameConfig.getProperty("logImpleKind"));this.addObserver(LogInfoFactory.newLogInstance(logImpleKind));this.setChanged(); //注意要设置变化点notifyObservers(e);throw new WebBBSException("在UserInfoManageImple类的doGetOneUserInfo方法中利用BeanUtils类进行对象拷贝时出现了InvocationTargetException异常");}break;case 2:AdminUserInfoPO oneAdminUserInfoPO=adminUserInfoManageDAOImpleBean.selectOneAdminUserInfoData(userName, userPassWord);oneUserInfoVO.setUserName(oneAdminUserInfoPO.getUserName());oneUserInfoVO.setUserPassWord(oneAdminUserInfoPO.getUserPassWord());oneUserInfoVO.setUserType(oneAdminUserInfoPO.getUserType());oneUserInfoVO.setAliaoName(oneAdminUserInfoPO.getAliaoName());oneUserInfoVO.setPassWordAsk(oneAdminUserInfoPO.getPassWordAsk());oneUserInfoVO.setUserImage(oneAdminUserInfoPO.getUserImage());oneUserInfoVO.setPassWordAnswer(oneAdminUserInfoPO.getPassWordAnswer());oneUserInfoVO.setUserMail(oneAdminUserInfoPO.getUserMail());oneUserInfoVO.setRegisterTime(oneAdminUserInfoPO.getRegisterTime());oneUserInfoVO.setId(oneAdminUserInfoPO.getId());oneUserInfoVO.setUserResume(oneAdminUserInfoPO.getUserResume());oneUserInfoVO.setType_User_Admin(new Integer(2));oneUserInfoVO.setUserSex(oneAdminUserInfoPO.getUserSex());oneUserInfoVO.setUserBirthDay(oneAdminUserInfoPO.getUserBirthDay());oneUserInfoVO.setUserComeFrom(oneAdminUserInfoPO.getUserComeFrom());oneUserInfoVO.setWorkUnit(oneAdminUserInfoPO.getWorkUnit());oneUserInfoVO.setStudyHistory(oneAdminUserInfoPO.getStudyHistory());oneUserInfoVO.setStudySchool(oneAdminUserInfoPO.getStudySchool());oneUserInfoVO.setIdCardNo(oneAdminUserInfoPO.getIdCardNo());try { //利用Bean拷贝类实现简单地拷贝BeanUtils.copyProperties(oneUserInfoVO,oneAdminUserInfoPO);}catch (IllegalAccessException e) {int logImpleKind=Integer.parseInt(ClassNameConfig.getProperty("logImpleKind"));this.addObserver(LogInfoFactory.newLogInstance(logImpleKind));this.setChanged(); //注意要设置变化点notifyObservers(e);throw new WebBBSException("在UserInfoManageImple类的doGetOneUserInfo方法中利用BeanUtils类进行对象拷贝时出现了IllegalAccessException异常");}catch (InvocationTargetException e){int logImpleKind=Integer.parseInt(ClassNameConfig.getProperty("logImpleKind"));this.addObserver(LogInfoFactory.newLogInstance(logImpleKind));this.setChanged(); //注意要设置变化点notifyObservers(e);throw new WebBBSException("在UserInfoManageImple类的doGetOneUserInfo方法中利用BeanUtils类进行对象拷贝时出现了InvocationTargetException异常");}break;}return oneUserInfoVO;}public ArrayList<UserInfoVO> doGetSomeAdminUserInfo(Map adminUserInfos) throws WebBBSException{ArrayList someAdminUserInfoPOs=null;someAdminUserInfoPOs=adminUserInfoManageDAOImpleBean.selectSomeAdminUserIn fo(adminUserInfos);ArrayList allAdminUserInfoVO=new ArrayList();Iterator allPOItem=someAdminUserInfoPOs.iterator();while(allPOItem.hasNext()){AdminUserInfoPO oneAdminUserInfoPO=(AdminUserInfoPO)allPOItem.next();UserInfoVO oneUserInfoVO=new UserInfoVO();try {BeanUtils.copyProperties(oneUserInfoVO, oneAdminUserInfoPO);}catch (IllegalAccessException e){int logImpleKind=Integer.parseInt(ClassNameConfig.getProperty("logImpleKind"));this.addObserver(LogInfoFactory.newLogInstance(logImpleKind));this.setChanged(); //注意要设置变化点notifyObservers(e);throw new WebBBSException("在UserInfoManageImple类的doGetSomeAdminUserInfo方法中利用BeanUtils类进行对象拷贝时出现了IllegalAccessException异常");}catch (InvocationTargetException e) {int logImpleKind=Integer.parseInt(ClassNameConfig.getProperty("logImpleKind"));this.addObserver(LogInfoFactory.newLogInstance(logImpleKind));this.setChanged(); //注意要设置变化点notifyObservers(e);throw new WebBBSException("在UserInfoManageImple类的doGetSomeAdminUserInfo方法中利用BeanUtils类进行对象拷贝时出现了InvocationTargetException异常");}allAdminUserInfoVO.add(oneUserInfoVO);}return allAdminUserInfoVO;}public ArrayList<UserInfoVO> doGetOnePageAllUserInfo(PageStateVO_Prototype onePageStateVO_Prototype) throws WebBBSException{ArrayList onePageAllUserInfoPOs=null;onePageAllUserInfoPOs=userInfoManageDAOImpleBean.selectOnePageAllUserInfo(onePageStateVO_Prototype);ArrayList onePageAllUserInfoVO=new ArrayList();Iterator allPOItem=onePageAllUserInfoPOs.iterator();while(allPOItem.hasNext()){UserInfoPO oneUserInfoPO=(UserInfoPO)allPOItem.next();UserInfoVO oneUserInfoVO=new UserInfoVO();try {BeanUtils.copyProperties(oneUserInfoVO, oneUserInfoPO);}catch (IllegalAccessException e){int logImpleKind=Integer.parseInt(ClassNameConfig.getProperty("logImpleKind"));this.addObserver(LogInfoFactory.newLogInstance(logImpleKind));this.setChanged(); //注意要设置变化点notifyObservers(e);throw new WebBBSException("在UserInfoManageImple类的doGetOnePageAllUserInfo方法中利用BeanUtils类进行对象拷贝时出现了IllegalAccessException异常");}catch (InvocationTargetException e) {int logImpleKind=Integer.parseInt(ClassNameConfig.getProperty("logImpleKind"));this.addObserver(LogInfoFactory.newLogInstance(logImpleKind));this.setChanged(); //注意要设置变化点notifyObservers(e);throw new WebBBSException("在UserInfoManageImple类的doGetOnePageAllUserInfo方法中利用BeanUtils类进行对象拷贝时出现了InvocationTargetException异常");}onePageAllUserInfoVO.add(oneUserInfoVO);}return onePageAllUserInfoVO;}public ArrayList<UserInfoVO> doGetOnePageRegisterUserInfo(PageStateVO_Prototype onePageStateVO_Prototype,int userType,Map registerUserInfos) throws WebBBSException{ ArrayList onePageRegisterUserInfoPOs=null;switch(userType){case erType_PlainRegisterUser:onePageRegisterUserInfoPOs=userInfoManageDAOImpleBean.selectOnePageRegisterUserInfo(onePageStateVO_Prototype,registerUserInfos);break;case erType_VIPRegisterUser:onePageRegisterUserInfoPOs=userInfoManageDAOImpleBean.selectOnePageVIPUserInfo(onePageStateVO_Prototype,registerUserInfos);break;}ArrayList onePageRegisterUserInfoVO=new ArrayList();Iterator allPOItem=onePageRegisterUserInfoPOs.iterator();while(allPOItem.hasNext()){UserInfoPO oneUserInfoPO=(UserInfoPO)allPOItem.next();UserInfoVO oneUserInfoVO=new UserInfoVO();try {BeanUtils.copyProperties(oneUserInfoVO, oneUserInfoPO);}catch (IllegalAccessException e){int logImpleKind=Integer.parseInt(ClassNameConfig.getProperty("logImpleKind"));this.addObserver(LogInfoFactory.newLogInstance(logImpleKind));this.setChanged(); //注意要设置变化点notifyObservers(e);throw new WebBBSException("在UserInfoManageImple类的doGetSomeRegisterUserInfo方法中利用BeanUtils类进行对象拷贝时出现了IllegalAccessException异常");}catch (InvocationTargetException e) {int logImpleKind=Integer.parseInt(ClassNameConfig.getProperty("logImpleKind"));this.addObserver(LogInfoFactory.newLogInstance(logImpleKind));this.setChanged(); //注意要设置变化点notifyObservers(e);throw new WebBBSException("在UserInfoManageImple类的doGetSomeRegisterUserInfo方法中利用BeanUtils类进行对象拷贝时出现了InvocationTargetException异常");}onePageRegisterUserInfoVO.add(oneUserInfoVO);}return onePageRegisterUserInfoVO;}public ArrayList<UserInfoVO> doGetSomeRegisterUserInfo(Map registerUserInfos,int userType)throws WebBBSException{ArrayList someRegisterUserInfoPOs=null;switch(userType){case erType_PlainRegisterUser:someRegisterUserInfoPOs=userInfoManageDAOImpleBean.selectSomeRegisterUserInfo(registerUserInfos);break;case erType_VIPRegisterUser:someRegisterUserInfoPOs=userInfoManageDAOImpleBean.selectSomeVIPUserInfo(registerUserInfos);break;}ArrayList allRegisterUserInfoVO=new ArrayList();Iterator allPOItem=someRegisterUserInfoPOs.iterator();while(allPOItem.hasNext()){UserInfoPO oneUserInfoPO=(UserInfoPO)allPOItem.next();UserInfoVO oneUserInfoVO=new UserInfoVO();try {BeanUtils.copyProperties(oneUserInfoVO, oneUserInfoPO);}catch (IllegalAccessException e){int logImpleKind=Integer.parseInt(ClassNameConfig.getProperty("logImpleKind"));this.addObserver(LogInfoFactory.newLogInstance(logImpleKind));this.setChanged(); //注意要设置变化点notifyObservers(e);throw new WebBBSException("在UserInfoManageImple类的doGetSomeRegisterUserInfo方法中利用BeanUtils类进行对象拷贝时出现了IllegalAccessException异常");}catch (InvocationTargetException e) {int logImpleKind=Integer.parseInt(ClassNameConfig.getProperty("logImpleKind"));this.addObserver(LogInfoFactory.newLogInstance(logImpleKind));this.setChanged(); //注意要设置变化点notifyObservers(e);throw new WebBBSException("在UserInfoManageImple类的doGetSomeRegisterUserInfo方法中利用BeanUtils类进行对象拷贝时出现了InvocationTargetException异常");}allRegisterUserInfoVO.add(oneUserInfoVO);}return allRegisterUserInfoVO;}public boolean doUpdateOneAdminUserPassWord(UserInfoVO oneUserInfoVO,String newPassWord) throws WebBBSException {String adminUserID=oneUserInfoVO.getId();return adminUserInfoManageDAOImpleBean.updateOneAdminUserPassWord(adminUserID, newPassWord);}public boolean doUpdateOneRegisterUserPassWord(UserInfoVO oneUserInfoVO,。
BBS管理系统一、需求分析1.1系统开发旳目旳:进入二十一世纪,在互联网高速发展旳今天。
已经成为人们迅速获取、公布和传递信息旳一种重要传播方式。
在人们政治、经济、生活等各个方面都发挥着重要旳作用。
这次我所设计旳UML建模课程正是互联网与社会生活之间旳紧密关系旳体现。
目前人们已经离不开了网络,网络已经成为人与人之间交流旳一种形式,它可以把事情旳复杂化转为简朴化。
目前旳计算机技术迅速向着网络化旳、集成化方向发展。
老式旳单机版应用软件正在逐渐退出舞台,取而代之旳是支持网络、支持多种数据信息(多媒体)旳新一代网络版应用软件,而目前网络版软件中似乎存在着两种不一样旳趋势,一种是称为客户端——服务器旳C/S构造应用系统,此类软件具有构造严谨,运行效率高,服务器端压力小,安全性好等长处,被广泛运用于局域网中。
另一种,就是称为浏览器——服务器旳B/S构造应用系统,它旳特点是在客户端直接采用了功能强大旳浏览器软件作为界面,其长处在于软件开发效率高,客户端不受操作平台旳限制、也不受地区旳限制,网络传播量少,即合用于局域网,更合用于英特网,并且投资小、见效快,顾客可以不必进行服务器方面旳投资,而是去租用,甚至是免费使用ISP旳服务器资源,因而受到越来越多中小型单位旳青睐。
BBS论坛系统已经是互联网站一种极为常见旳互动交流服务。
在BBS论坛中可以向网友提供多种各样旳分类专题和讨论区服务,已经注册旳顾客可以在此刊登自己旳某些观感、交流某些技术、经验乃至人生旳感悟与忧欢,亦可以做为网友们之间旳交流渠道。
在网站中亦可在此对网友们提出旳问题做出评论或者发刊登自己新旳帖子。
通过BBS论坛旳方式,可以增强个人与个人,团体与团体,个人与团体之间旳紧密交流联络,在英特网上实现信息旳传递,提高办事效率。
因此论坛建设在英特网应用上旳地位显而易见,它已成为现代人沟通和获取信息旳重要构成部分,从而倍受人们旳重视。
该系统以英特网为平台,前台可使任何人注册、登陆在论坛上进行发贴及讨论,版主或者前台管理者也可以进行一部分管理。
基于J2EE Struts框架的课程设计实训项目——《BBS论坛系统》——针对系统后台管理员信息的数据访问组件及对应的单元测试(第2/2部分)1.1.1对AdminUserManageDAOJDBCImple类进行单元测试1、添加测试用例(1)添加测试用例(2)设置类名称为TestAdminUserManageDAOJDBCImple、包名称为com.px1987.webbbs.daotest,并对com.px1987.webbbs.dao.AdminUserManageDAOJDBCImple类进行测试(3)选择各个被测试的方法2、编程该测试用例package com.px1987.webbbs.daotest;import junit.framework.TestCase;import com.px1987.webbbs.config.ClassNameConfig;import com.px1987.webbbs.dao.*;import com.px1987.webbbs.exception.*;import com.px1987.webbbs.util.AdminUserManageDAOFactory; import java.util.*;public class TestAdminUserManageDAOJDBCImple extends TestCase { private AdminUserManageDAOInterface adminUserManageDAOJDBCImple = null;String adminManageDAOJDBCImpleClassName=null;protected void setUp() throws Exception{super.setUp();adminManageDAOJDBCImpleClassName=ClassNameConfig.getProperty("adminManageDAOJDBCImple.className");adminUserManageDAOJDBCImple=new AdminUserManageDAOFactory().newAdminManageDAOBean(adminManageDAOJDBCImpleClassName);}protected void tearDown() throws Exception{adminUserManageDAOJDBCImple = null;super.tearDown();}public void testSelectOneAdminUserInfoData() throws WebBBSException{ String userName="admin";String userPassWord="admin";AdminUserInfoPO returnOneAdminUserInfoPO=adminUserManageDAOJDBCImple.selectOneAdminUserInfoData(userName,userPassWord);//由于所给定的ID是数据库表中存在的一个用户,因此能够返回该对象this.assertNotNull(returnOneAdminUserInfoPO);}public void testSelectAllAdminUserInfo() throws WebBBSException{ ArrayList allAdminUserInfos=adminUserManageDAOJDBCImple.selectAllAdminUserInfo();this.assertNotNull(allAdminUserInfos);Iterator allItem=allAdminUserInfos.iterator();while(allItem.hasNext()){AdminUserInfoPO oneAdminUserInfoPO=(AdminUserInfoPO)allItem.next();this.assertNotNull(oneAdminUserInfoPO);String adminUserName=oneAdminUserInfoPO.getUserName();this.assertNotNull(adminUserName);}}public void testSelectAllAdminUserNameInfo() throws WebBBSException{ String userName="adm";ArrayList returnAllAdminUserNameInfos=adminUserManageDAOJDBCImple.selectAllAdminUserNameInfo(userName);this.assertNotNull(returnAllAdminUserNameInfos);Iterator allAdminNameItem=returnAllAdminUserNameInfos.iterator();while(allAdminNameItem.hasNext()){String oneAdminUserName=(String)allAdminNameItem.next();this.assertNotNull(oneAdminUserName);}}public void testSelectOneAdminUserInfo() throws WebBBSException{ //应该根据数据库表中的实际数据来决定String adminUserID="402880681071d7ed011071d7f20d0001";AdminUserInfoPO returnOneAdminUserInfoPO=adminUserManageDAOJDBCImple.selectOneAdminUserInfo(adminUserID);//由于所给定的ID是数据库表中存在的一个用户,因此能够返回该对象assertNotNull(returnOneAdminUserInfoPO);}public void testSelectOneAdminUserInfoByName() throws WebBBSException{ String userName="admin"; //应该根据数据库表中的实际数据来决定AdminUserInfoPO returnOneAdminUserInfoPO=adminUserManageDAOJDBCImple.selectOneAdminUserInfoByName(userName);//由于所给定的userName是数据库表中存在的一个用户,因此能够返回该对象assertNotNull(returnOneAdminUserInfoPO);}public void testSelectSomeAdminUserInfo() throws WebBBSException{ String HQLQuery="select * from AdminUserInfo";ArrayList allAdminUserInfos=adminUserManageDAOJDBCImple.selectSomeAdminUserInfo(HQLQuery);assertNotNull(allAdminUserInfos);Iterator allIAdminUserInfoPOItem=allAdminUserInfos.iterator();while(allIAdminUserInfoPOItem.hasNext()){AdminUserInfoPO oneAdminUserInfoPO=(AdminUserInfoPO)allIAdminUserInfoPOItem.next();assertNotNull(oneAdminUserInfoPO);String adminUserName=oneAdminUserInfoPO.getUserName();assertNotNull(adminUserName);}}/*public void testBatchDeleteAdminUserInfo() throws WebBBSException{ ArrayList deletedUserIDs=new ArrayList();String userIDOne="-226769039"; //应该根据数据库表中的实际数据来决定String userIDTwo="-212445867";String userIDThree="-212415571";deletedUserIDs.add(userIDOne);deletedUserIDs.add(userIDTwo);deletedUserIDs.add(userIDThree);boolean returnBoolean=adminUserManageDAOJDBCImple.batchDeleteAdminUserInfo(deletedUserIDs);this.assertTrue(returnBoolean);}public void testDeleteOneAdminUserInfo() throws WebBBSException{/**该方法应该只执行一次,下面的adminUserID 应该根据数据库表中的实际数据来决定*/String adminUserID="ff80808113c78be70113c78bea720001";boolean returnBoolean=adminUserManageDAOJDBCImple.deleteOneAdminUserInfo(adminUserID);this.assertTrue(returnBoolean);}public void testInsertOneAdminUserInfo() throws WebBBSException{ AdminUserInfoPO oneAdminUserInfoPO=new AdminUserInfoPO();Date nowDate=new Date();//不需要设置该值,可以由Hibernate自动来实现添加oneAdminUserInfoPO.setId(new Integer((int)nowDate.getTime()).toString());oneAdminUserInfoPO.setUserName("张三");oneAdminUserInfoPO.setUserPassWord("1234");oneAdminUserInfoPO.setUserType(1);oneAdminUserInfoPO.setAliaoName("网上张飞");oneAdminUserInfoPO.setPassWordAsk("Who Are You?");oneAdminUserInfoPO.setUserImage("../webResource/PersonImage/Chang.gif");oneAdminUserInfoPO.setRegisterTime(new java.util.Date().toLocaleString());oneAdminUserInfoPO.setPassWordAnswer("zhang");oneAdminUserInfoPO.setUserMail("trainict@");oneAdminUserInfoPO.setUserSex(1);oneAdminUserInfoPO.setUserBirthDay("2007-01-25");oneAdminUserInfoPO.setUserComeFrom("北京");oneAdminUserInfoPO.setUserResume("我是网络飞人");oneAdminUserInfoPO.setWorkUnit("中科院计算所");oneAdminUserInfoPO.setStudyHistory("大学毕业");oneAdminUserInfoPO.setStudySchool("XXX大学");oneAdminUserInfoPO.setIdCardNo("12345678901234567");boolean actualReturn=adminUserManageDAOJDBCImple.insertOneAdminUserInfo(oneAdminUserInfoPO);this.assertTrue(actualReturn);}public void testUpdateOneAdminUserInfo() throws WebBBSException{ //应该根据数据库表中的实际数据来决定String adminUserID="ff80808110d7c5a00110d7c5a6640002";AdminUserInfoPO oneAdminUserInfoPO=new AdminUserInfoPO();//不需要设置该值,可以由Hibernate自动来实现添加oneAdminUserInfoPO.setId(adminUserID);oneAdminUserInfoPO.setUserName("张三");//本测试项目改变为此数据项目oneAdminUserInfoPO.setUserPassWord("12345678");oneAdminUserInfoPO.setUserType(1);oneAdminUserInfoPO.setAliaoName("网上张飞");oneAdminUserInfoPO.setPassWordAsk("Who Are You?"); oneAdminUserInfoPO.setUserImage("../webResource/PersonImage/Chang.gif");oneAdminUserInfoPO.setRegisterTime(new Date().toLocaleString());oneAdminUserInfoPO.setPassWordAnswer("zhang");oneAdminUserInfoPO.setUserMail("trainict@");oneAdminUserInfoPO.setUserSex(1);oneAdminUserInfoPO.setUserBirthDay("2007-01-25");oneAdminUserInfoPO.setUserComeFrom("北京");oneAdminUserInfoPO.setUserResume("我是网络飞人");oneAdminUserInfoPO.setWorkUnit("中科院计算所");oneAdminUserInfoPO.setStudyHistory("大学毕业");oneAdminUserInfoPO.setStudySchool("XXX大学");oneAdminUserInfoPO.setIdCardNo("12345678901234567");boolean actualReturn=adminUserManageDAOJDBCImple.updateOneAdminUserInfo(oneAdminUserInfoPO);this.assertTrue(actualReturn);}public void testUpdateOneAdminUserPassWord() throws WebBBSException{ String newPassWord="1234";//应该根据数据库表中的实际的数据值来决定String registerUserId="ff80808110d7c5a00110d7c5a6640002";boolean actualReturn=adminUserManageDAOJDBCImple.updateOneAdminUserPassWord(newPassWord, registerUserId);this.assertTrue(actualReturn);}*/}3、执行该测试用例(1)在classNameConfig.properties文件中添加下面的属性adminManageDAOJDBCImple.className=com.px1987.webbbs.dao.AdminUserManageDAOJDBCImple(2)启动测试用例(3)产生出下面的执行结果。
1.1构建BBS论坛系统项目中控制层模块内的各个Action组件的应用示例1.1.1添加实现用户信息管理的Action类1、用户信息管理的Action类UserManagerAction(1)设置其配置参数1)/userManagerAction2)org.apache.struts.actions.DispatchAction3)erManagerAction4)userInfoActionForm5)/showValidatorError.do(2)在parameter中输入action(3)最后将产生出下面的状态2、编程该Action类1.1.2添加实现BBS信息管理的Action类1、用户信息管理的Action类BBSManagerAction(1)设置其配置参数1)/bbsManagerAction2)org.apache.struts.actions.DispatchAction3)com.px1987.webbbs.action.BBSManagerAction4)bbsInfoActionForm5)/showValidatorError.do(2)在parameter中输入action(3)最后将产生出下面的状态2、编程该Action类3、添加与该Action类相关的Forward1.1.3添加实现BBS信息分页管理的Action类1、用户信息管理的Action类BBSPageGuideAction(1)设置其配置参数1)/bbsPageGuideAction2)org.apache.struts.actions.DispatchAction3)com.px1987.webbbs.action.BBSPageGuideAction(2)在parameter中输入action(3)最后将产生出下面的状态2、编程该Action类1.1.4添加实现BBS信息查询管理的Action类1、添加一个实现页面跳转的 Action类BBSSearchInfoAction (1)新建一个Action类(2)设置其配置参数1)/bbsSearchInfoAction2)org.apache.struts.actions.DispatchAction3)com.px1987.webbbs.action.BBSSearchInfoAction4)bbsSearchInfoActionForm5)/showValidatorError.do(3)在parameter中输入action(4)最后将产生出下面的状态2、编程该Action类1.1.5页面跳转的 Action类PageForwordAction1、添加一个实现页面跳转的 Action类PageForwordAction (1)新建一个Action类1)Path为/pageForwordAction2)基类:org.apache.struts.actions.DispatchAction3)类型:com.px1987.webbbs.action.PageForwordAction4)/WebBBS/WebRoot/WEB-INF/struts-config_pageForward.xml(2)并在parameter中输入action(3)并为它添加各个 Forward目标(4)也就是下面的状态<actionparameter="action"path="/pageForwordAction"type="com.px1987.webbbs.action.PageForwordAction" ><forward name="showRegisterForm" path="goShowRegisterForm" /> <!-- 直接采用Tiles中的定义名称作为 path的目标 --><forward name="showWebAppError" path="goShowWebAppError" /><forward name="doSystemManage" path="goSystemManage" /><forward name="showAllBBSClassInfo" path="goShowAllBBSClassInfo" /><forward name="showIndexContent" path="goWebBBSIndex" /><forward name="showUpdateUserInfo" path="goShowUpdateUserInfo" /> <forward name="showUpdateAdminUserInfo" path="goShowUpdateAdminUserInfo"/><forward name="showOnLineUserInfo" path="goShowOnLineUserInfo" /><forward name="doGetUserPassWord" path="goGetUserPassWord" /><forward name="doSendBBSInfo" path="goSendBBSInfo" /><forward name="doReplyBBSInfo" path="goReplyBBSInfo" /><forward name="showAllHotBBSInfo" path="goShowAllHotBBSInfo" /><forward name="showAllBBSInClass" path="goShowAllBBSInClass" /><forward name="showOneBBSInfo" path="goShowOneBBSInfo" /><forward name="showLoginUserAllBBSInfo" path="goShowLoginUserAllBBSInfo" /><forward name="showAllBBSInfoByReplyUserInfo" path="goShowAllBBSInfoByReplyUserInfo" /><forward name="showNewBBSInfo" path="goShowNewBBSInfo" /><forward name="showPrevelInfo" path="goShowPrevelInfo" /><forward name="showTitleLeaderInfo" path="goShowTitleLeaderInfo" /></action>2、编程该Action类。
基于J2EE Web组件技术的课程设计实训项目——《BBS论坛系统》——构建系统业务层中的用户信息管理的业务功能组件1.1.1实现系统业务层与用户信息管理相关的各个业务功能组件1、业务实体UserInfoBaseVO(1)业务实体UserInfoBaseVO,包名称为com.px1987.webbbs.model,并且实现java.io.Serializable接口(2)添加下面的属性private String userName;private String userPassWord;private Integer userType;private String aliaoName;private String passWordAsk;private String userImage;private String passWordAnswer;private String userMail;private String registerTime;private int userID;private String userResume;private Integer type_User_Admin; //该成员主要是区分用户的类型-----注册用户(=1)还是管理员(=2)(3)并为它们提供get/set方法(4)最后为下面的内容package com.px1987.webbbs.model;import java.io.Serializable;public class UserInfoBaseVO implements Serializable {private String userName;private String userPassWord;private Integer userType;private String aliaoName;private String passWordAsk;private String userImage;private String passWordAnswer;private String userMail;private String registerTime;private int userID;private String userResume;//该成员主要是区分用户的类型-----注册用户(=1)还是管理员(=2)private Integer type_User_Admin;public UserInfoBaseVO() {}public String getAliaoName() {return aliaoName;}public void setAliaoName(String aliaoName) {this.aliaoName = aliaoName;}public String getPassWordAnswer() {return passWordAnswer;}public void setPassWordAnswer(String passWordAnswer) { this.passWordAnswer = passWordAnswer;}public String getPassWordAsk() {return passWordAsk;}public void setPassWordAsk(String passWordAsk) {this.passWordAsk = passWordAsk;}public String getRegisterTime() {return registerTime;}public void setRegisterTime(String registerTime) { this.registerTime = registerTime;}public Integer getType_User_Admin() {return type_User_Admin;}public void setType_User_Admin(Integer type_User_Admin) { this.type_User_Admin = type_User_Admin;}public int getUserID() {return userID;}public void setUserID(int userID) {erID = userID;}public String getUserImage() {return userImage;}public void setUserImage(String userImage) {erImage = userImage;}public String getUserMail() {return userMail;}public void setUserMail(String userMail) {erMail = userMail;}public String getUserName() {return userName;}public void setUserName(String userName) {erName = userName;}public String getUserPassWord() {return userPassWord;}public void setUserPassWord(String userPassWord) {erPassWord = userPassWord;}public String getUserResume() {return userResume;}public void setUserResume(String userResume) {erResume = userResume;}public Integer getUserType() {return userType;}public void setUserType(Integer userType) {erType = userType;}}2、业务实体UserInfoBaseVO 的子类UserInfoVO(1)业务实体UserInfoVO,包名称为com.px1987.webbbs.model,并且继承UserInfoBaseVO 类,同时也实现java.io.Serializable接口(2)添加下面的属性//下面的属性来自于UserInfoBasePO类private int userSex;private String userBirthDay;private String userComeFrom;// 下面的属性来自于UserInfoPO类private Map contactMethod = new HashMap(); // 下面的属性主要是对注册用户的联系方式进行分离private String userICQCode;private String userMSNCode;private String userQQCode;private String userSign;private int emailVisible;private int acceptAdvise;// 下面的属性来自于AdminUserInfoPO类private String workUnit;private String studyHistory;private String studySchool;private String idCardNo;private int type_User_Admin; //该成员主要是区分用户的类型-----注册用户(=1)还是管理员(=2)// 下面的属性来自于AdminUserInfoPO类private String workUnit;private String studyHistory;private String studySchool;private String idCardNo;(3)并为它们提供get/set方法(4)最后为下面的状态内容package com.px1987.webbbs.model;import java.io.Serializable;import java.util.*;public class UserInfoVO extends UserInfoBaseVO implements Serializable { //下面的属性来自于UserInfoBasePO类private int userSex;private String userBirthDay;private String userComeFrom;// 下面的属性来自于UserInfoPO类private Map contactMethod = new HashMap();// 下面的属性主要是对注册用户的联系方式进行分离private String userICQCode;private String userMSNCode;private String userQQCode;private String userSign;private int emailVisible;private int acceptAdvise;// 下面的属性来自于AdminUserInfoPO类private String workUnit;private String studyHistory;private String studySchool;private String idCardNo;public UserInfoVO(){super();userSex=1;userBirthDay="";userComeFrom="";userSign="";emailVisible=1;acceptAdvise=1;userICQCode="";userMSNCode="";userQQCode="";workUnit="";studyHistory="";studySchool="";idCardNo="";}public int getAcceptAdvise() {return acceptAdvise;}public void setAcceptAdvise(int acceptAdvise) { this.acceptAdvise = acceptAdvise;}public Map getContactMethod() {return contactMethod;}public void setContactMethod(Map contactMethod) { this.contactMethod = contactMethod;}public int getEmailVisible() {return emailVisible;}public void setEmailVisible(int emailVisible) { this.emailVisible = emailVisible;}public String getIdCardNo() {return idCardNo;}public void setIdCardNo(String idCardNo) { this.idCardNo = idCardNo;}public String getStudyHistory() {return studyHistory;}public void setStudyHistory(String studyHistory) { this.studyHistory = studyHistory;}public String getStudySchool() {return studySchool;}public void setStudySchool(String studySchool) { this.studySchool = studySchool;}public String getUserBirthDay() {return userBirthDay;}public void setUserBirthDay(String userBirthDay) { erBirthDay = userBirthDay;}public String getUserComeFrom() {return userComeFrom;}public void setUserComeFrom(String userComeFrom) { erComeFrom = userComeFrom;}public String getUserICQCode() {return (String)contactMethod.get("userICQCode");}/** 下面的各个方法为“帮助方法”*/public void setUserICQCode(String userICQCode) {contactMethod.put("userICQCode", userICQCode);}public String getUserMSNCode() {return (String)contactMethod.get("userMSNCode");}public void setUserMSNCode(String userMSNCode) {contactMethod.put("userMSNCode", userMSNCode);}public String getUserQQCode() {return (String)contactMethod.get("userQQCode");}public void setUserQQCode(String userQQCode) {contactMethod.put("userQQCode", userQQCode);}public void addOneContactMethod(String oneContactMethodKey,String oneContactMethodValue) { //该方法为“帮助方法”contactMethod.put(oneContactMethodKey,oneContactMethodValue);}public String getOneContactMethod(String oneContactMethodKey){return (String)contactMethod.get(oneContactMethodKey);}public int getUserSex() {return userSex;}public void setUserSex(int userSex) {erSex = userSex;}public String getUserSign() {return userSign;}public void setUserSign(String userSign) {erSign = userSign;}public String getWorkUnit() {return workUnit;}public void setWorkUnit(String workUnit) {this.workUnit = workUnit;}}2、添加与用户信息处理相关的业务接口(1)接口UserInfoManageInterface,包名称为com.px1987.webbbs.model(2)设计该接口中的内容package com.px1987.webbbs.model;import com.px1987.webbbs.exception.*;import java.util.*;public interface UserInfoManageInterface{public boolean doUserLogin(UserInfoVO oneUserInfoVO) throws WebBBSException;public boolean doUserRegister(UserInfoVO oneUserInfoVO) throws WebBBSException;public boolean doUpdateOneUserInfo(UserInfoVO oneUserInfoVO) throws WebBBSException;public boolean doUpdateOneRegisterUserPassWord(UserInfoVO oneUserInfoVO,String newPassWord) throws WebBBSException;public boolean doUpdateOneAdminUserPassWord(UserInfoVO oneUserInfoVO,String newPassWord) throws WebBBSException;public boolean doCheckUserNameExist(String userName,Integer type_User_Admin) throws WebBBSException;public String doGetOneRegisterUserPassWord(UserInfoVO oneRegisterUserInfoVO) throws WebBBSException;public String doGetOneAdminUserPassWord(UserInfoVO oneAdminUserInfoVO) throws WebBBSException;public UserInfoVO doGetOneRegisterUserInfo(String registerUserID) throws WebBBSException;public UserInfoVO doGetOneRegisterUserInfo(UserInfoVO oneRegisterUserInfoVO) throws WebBBSException;public UserInfoVO doGetOneAdminUserInfo(String adminUserID) throws WebBBSException;public UserInfoVO doGetOneAdminUserInfo(UserInfoVO oneAdminUserInfoVO) throws WebBBSException;public UserInfoBaseVO doGetOneUserInfo(String userName,String userPassWord, Integer type_User_Admin) throws WebBBSException;public ArrayList doGetAllUserNameInfo(String userName) throws WebBBSException;public boolean doDeleteOneRegisterUserInfo(String registerUserID) throws WebBBSException;public boolean doDeleteOneRegisterUserInfo(UserInfoVO oneRegisterUserInfoVO) throws WebBBSException;public boolean doDeleteOneAdminUserInfo(String adminUserID) throws WebBBSException;public boolean doDeleteOneAdminUserInfo(UserInfoVO oneAdminUserInfoVO) throws WebBBSException;public ArrayList doGetAllRegisterUserInfo() throws WebBBSException;public ArrayList doGetSomeRegisterUserInfo(Map registerUserInfos) throws WebBBSException;public ArrayList doGetAllAdminUserInfo() throws WebBBSException;public ArrayList doGetSomeAdminUserInfo(Map adminUserInfos) throws WebBBSException;}3、添加接口UserInfoManageInterface的实现类(1)接口UserInfoManageInterface的实现类UserInfoManageImple,包名称为com.px1987.webbbs.model(2)编程该业务组件类package com.px1987.webbbs.model;import java.util.*;import com.px1987.webbbs.exception.WebBBSException;import erInfoPO;import com.px1987.webbbs.dao.AdminUserInfoPO;import erManageDAOInterface;import erManageDAOJDBCImple;public class UserInfoManageImple implements UserInfoManageInterface { UserManageDAOInterface oneUserManageDAOJDBCImple=null;public void setOneUserManageDAOJDBCImple(UserManageDAOInterface oneUserManageDAOJDBCImple) {this.oneUserManageDAOJDBCImple = oneUserManageDAOJDBCImple;}public UserInfoManageImple() {}public boolean doCheckUserNameExist(String userName, Integer type_User_Admin) throws WebBBSException {return false;}public boolean doDeleteOneAdminUserInfo(String adminUserID)throws WebBBSException {return false;}public boolean doDeleteOneAdminUserInfo(UserInfoVO oneAdminUserInfoVO) throws WebBBSException {return false;}public boolean doDeleteOneRegisterUserInfo(String registerUserID)throws WebBBSException {return false;public boolean doDeleteOneRegisterUserInfo(UserInfoVO oneRegisterUserInfoVO) throws WebBBSException {return false;}public ArrayList doGetAllAdminUserInfo() throws WebBBSException { return null;}public ArrayList doGetAllRegisterUserInfo() throws WebBBSException { return null;}public ArrayList doGetAllUserNameInfo(String userName)throws WebBBSException {return null;}public UserInfoVO doGetOneAdminUserInfo(String adminUserID)throws WebBBSException {return null;}public UserInfoVO doGetOneAdminUserInfo(UserInfoVO oneAdminUserInfoVO) throws WebBBSException {return null;}public String doGetOneAdminUserPassWord(UserInfoVO oneAdminUserInfoVO) throws WebBBSException {return null;}public UserInfoVO doGetOneRegisterUserInfo(String registerUserID) throws WebBBSException {return null;public UserInfoVO doGetOneRegisterUserInfo(UserInfoVO oneRegisterUserInfoVO) throws WebBBSException {return null;}public String doGetOneRegisterUserPassWord(UserInfoVO oneRegisterUserInfoVO) throws WebBBSException {return null;}public UserInfoVO doGetMaxIDUserInfo() throws WebBBSException{// UserManageDAOInterface oneUserManageDAOJDBCImple=null;UserInfoVO oneUserInfoVO=null;UserInfoPO oneUserInfoPO=null;// oneUserManageDAOJDBCImple=new UserManageDAOJDBCImple();oneUserInfoVO=new UserInfoVO();oneUserInfoPO=oneUserManageDAOJDBCImple.selectMaxIDUserInfo();oneUserInfoVO.setUserName(oneUserInfoPO.getUserName());oneUserInfoVO.setUserPassWord(oneUserInfoPO.getUserPassWord());oneUserInfoVO.setUserType(oneUserInfoPO.getUserType());oneUserInfoVO.setAliaoName(oneUserInfoPO.getAliaoName());oneUserInfoVO.setPassWordAsk(oneUserInfoPO.getPassWordAsk());oneUserInfoVO.setUserImage(oneUserInfoPO.getUserImage());oneUserInfoVO.setPassWordAnswer(oneUserInfoPO.getPassWordAnswer());oneUserInfoVO.setUserMail(oneUserInfoPO.getUserMail());oneUserInfoVO.setRegisterTime(oneUserInfoPO.getRegisterTime());oneUserInfoVO.setUserID(oneUserInfoPO.getId());oneUserInfoVO.setUserResume(oneUserInfoPO.getUserResume());oneUserInfoVO.setType_User_Admin(new Integer(1));oneUserInfoVO.setUserSex(oneUserInfoPO.getUserSex());oneUserInfoVO.setUserBirthDay(oneUserInfoPO.getUserBirthDay());oneUserInfoVO.setUserComeFrom(oneUserInfoPO.getUserComeFrom());oneUserInfoVO.setContactMethod(oneUserInfoPO.getContactMethod());oneUserInfoVO.setUserSign(oneUserInfoPO.getUserSign());oneUserInfoVO.setEmailVisible(oneUserInfoPO.getEmailVisible());oneUserInfoVO.setAcceptAdvise(oneUserInfoPO.getAcceptAdvise());return oneUserInfoVO;}public UserInfoVO doGetOneUserInfo(String userName, String userPassWord, Integer type_User_Admin) throws WebBBSException {// UserManageDAOInterface oneUserManageDAOJDBCImple=null;UserInfoVO oneUserInfoVO=null;// oneUserManageDAOJDBCImple=new UserManageDAOJDBCImple();oneUserInfoVO=new UserInfoVO();switch(type_User_Admin.intValue()){case 1:UserInfoPO oneUserInfoPO=oneUserManageDAOJDBCImple.SelectOneUserInfoData(userName, userPassWord);oneUserInfoVO.setUserName(oneUserInfoPO.getUserName());oneUserInfoVO.setUserPassWord(oneUserInfoPO.getUserPassWord());oneUserInfoVO.setUserType(oneUserInfoPO.getUserType());oneUserInfoVO.setAliaoName(oneUserInfoPO.getAliaoName());oneUserInfoVO.setPassWordAsk(oneUserInfoPO.getPassWordAsk());oneUserInfoVO.setUserImage(oneUserInfoPO.getUserImage());oneUserInfoVO.setPassWordAnswer(oneUserInfoPO.getPassWordAnswer());oneUserInfoVO.setUserMail(oneUserInfoPO.getUserMail());oneUserInfoVO.setRegisterTime(oneUserInfoPO.getRegisterTime());oneUserInfoVO.setUserID(oneUserInfoPO.getId());oneUserInfoVO.setUserResume(oneUserInfoPO.getUserResume());oneUserInfoVO.setType_User_Admin(new Integer(1));oneUserInfoVO.setUserSex(oneUserInfoPO.getUserSex());oneUserInfoVO.setUserBirthDay(oneUserInfoPO.getUserBirthDay());oneUserInfoVO.setUserComeFrom(oneUserInfoPO.getUserComeFrom());oneUserInfoVO.setContactMethod(oneUserInfoPO.getContactMethod());oneUserInfoVO.setUserSign(oneUserInfoPO.getUserSign());oneUserInfoVO.setEmailVisible(oneUserInfoPO.getEmailVisible());oneUserInfoVO.setAcceptAdvise(oneUserInfoPO.getAcceptAdvise());break;case 2:AdminUserInfoPO oneAdminUserInfoPO= oneUserManageDAOJDBCImple.SelectOneAdminUserInfoData(userName, userPassWord);oneUserInfoVO.setUserName(oneAdminUserInfoPO.getUserName());oneUserInfoVO.setUserPassWord(oneAdminUserInfoPO.getUserPassWord());oneUserInfoVO.setUserType(oneAdminUserInfoPO.getUserType());oneUserInfoVO.setAliaoName(oneAdminUserInfoPO.getAliaoName());oneUserInfoVO.setPassWordAsk(oneAdminUserInfoPO.getPassWordAsk());oneUserInfoVO.setUserImage(oneAdminUserInfoPO.getUserImage());oneUserInfoVO.setPassWordAnswer(oneAdminUserInfoPO.getPassWordAnswer());oneUserInfoVO.setUserMail(oneAdminUserInfoPO.getUserMail());oneUserInfoVO.setRegisterTime(oneAdminUserInfoPO.getRegisterTime());oneUserInfoVO.setUserID(oneAdminUserInfoPO.getId());oneUserInfoVO.setUserResume(oneAdminUserInfoPO.getUserResume());oneUserInfoVO.setType_User_Admin(new Integer(2));oneUserInfoVO.setUserSex(oneAdminUserInfoPO.getUserSex());oneUserInfoVO.setUserBirthDay(oneAdminUserInfoPO.getUserBirthDay());oneUserInfoVO.setUserComeFrom(oneAdminUserInfoPO.getUserComeFrom());oneUserInfoVO.setWorkUnit(oneAdminUserInfoPO.getWorkUnit());oneUserInfoVO.setStudyHistory(oneAdminUserInfoPO.getStudyHistory());oneUserInfoVO.setStudySchool(oneAdminUserInfoPO.getStudySchool());oneUserInfoVO.setIdCardNo(oneAdminUserInfoPO.getIdCardNo());break;}return oneUserInfoVO;}public ArrayList doGetSomeAdminUserInfo(Map adminUserInfos)throws WebBBSException {return null;}public ArrayList doGetSomeRegisterUserInfo(Map registerUserInfos) throws WebBBSException {return null;}public boolean doUpdateOneAdminUserPassWord(UserInfoVO oneUserInfoVO, String newPassWord) throws WebBBSException {return false;}public boolean doUpdateOneRegisterUserPassWord(UserInfoVO oneUserInfoVO, String newPassWord) throws WebBBSException {return false;}public boolean doUpdateOneUserInfo(UserInfoVO oneUserInfoVO) throws WebBBSException{// UserManageDAOInterface oneUserManageDAOJDBCImple=null;boolean okOrNot=false;UserInfoPO oneUserInfoPO=null;AdminUserInfoPO oneAdminUserInfoPO=null;// oneUserManageDAOJDBCImple=new UserManageDAOJDBCImple();switch(oneUserInfoVO.getType_User_Admin().intValue()){case 1: //目前是前台用户在进行修改吗oneUserInfoPO=new UserInfoPO();oneUserInfoPO.setId(oneUserInfoVO.getUserID());oneUserInfoPO.setUserName(oneUserInfoVO.getUserName());oneUserInfoPO.setUserPassWord(oneUserInfoVO.getUserPassWord());oneUserInfoPO.setUserType(oneUserInfoVO.getUserType());oneUserInfoPO.setAliaoName(oneUserInfoVO.getAliaoName());oneUserInfoPO.setPassWordAsk(oneUserInfoVO.getPassWordAsk());oneUserInfoPO.setUserImage(oneUserInfoVO.getUserImage());oneUserInfoPO.setRegisterTime(oneUserInfoVO.getRegisterTime());oneUserInfoPO.setPassWordAnswer(oneUserInfoVO.getPassWordAnswer());oneUserInfoPO.setUserMail(oneUserInfoVO.getUserMail());oneUserInfoPO.setUserSex(oneUserInfoVO.getUserSex());oneUserInfoPO.setUserBirthDay(oneUserInfoVO.getUserBirthDay());oneUserInfoPO.setUserComeFrom(oneUserInfoVO.getUserComeFrom());oneUserInfoPO.setUserResume(oneUserInfoVO.getUserResume());oneUserInfoPO.setUserSign(oneUserInfoVO.getUserSign());oneUserInfoPO.setEmailVisible(oneUserInfoVO.getEmailVisible());oneUserInfoPO.setAcceptAdvise(oneUserInfoVO.getAcceptAdvise());oneUserInfoPO.setContactMethod(oneUserInfoVO.getContactMethod());okOrNot=oneUserManageDAOJDBCImple.updateOneUserInfo(oneUserInfoPO);break;case 2: //目前是后台某种形式的管理员在进行修改吗break;}return okOrNot;}public boolean doUserLogin(UserInfoVO oneUserInfoVO) throws WebBBSException{ String userName=oneUserInfoVO.getUserName();String userPassWord=oneUserInfoVO.getUserPassWord();int type_User_Admin=oneUserInfoVO.getType_User_Admin().intValue();boolean okOrNot=false;// UserManageDAOInterface oneUserManageDAOJDBCImple=null;// oneUserManageDAOJDBCImple=new UserManageDAOJDBCImple();switch(type_User_Admin){case 1: //目前是前台用户在进行登录UserInfoPO oneUserInfoPO=oneUserManageDAOJDBCImple.SelectOneUserInfoData(userName, userPassWord);if(oneUserInfoPO==null) {okOrNot=false;}else{okOrNot=true;}break;case 2: //目前是后台某种形式的管理员在进行登录AdminUserInfoPO oneAdminUserInfoPO= oneUserManageDAOJDBCImple.SelectOneAdminUserInfoData(userName, userPassWord);if(oneAdminUserInfoPO==null) {okOrNot=false;}else{okOrNot=true;}break;}return okOrNot;}public boolean doUserRegister(UserInfoVO oneUserInfoVO) throws WebBBSException {boolean okOrNot=false;UserInfoPO oneUserInfoPO=null;AdminUserInfoPO oneAdminUserInfoPO=null;// UserManageDAOInterface oneUserManageDAOJDBCImple=null;// oneUserManageDAOJDBCImple=new UserManageDAOJDBCImple();int type_User_Admin=oneUserInfoVO.getType_User_Admin().intValue();switch(type_User_Admin){case 1: //目前是前台用户在进行注册oneUserInfoPO=new UserInfoPO();int userID=(int)new Date().getTime();oneUserInfoPO.setId(userID);oneUserInfoPO.setUserName(oneUserInfoVO.getUserName());oneUserInfoPO.setUserPassWord(oneUserInfoVO.getUserPassWord());oneUserInfoPO.setUserType(oneUserInfoVO.getUserType());oneUserInfoPO.setAliaoName(oneUserInfoVO.getAliaoName());oneUserInfoPO.setPassWordAsk(oneUserInfoVO.getPassWordAsk());oneUserInfoPO.setUserImage(oneUserInfoVO.getUserImage());oneUserInfoPO.setRegisterTime(oneUserInfoVO.getRegisterTime());oneUserInfoPO.setPassWordAnswer(oneUserInfoVO.getPassWordAnswer());oneUserInfoPO.setUserMail(oneUserInfoVO.getUserMail());oneUserInfoPO.setUserSex(oneUserInfoVO.getUserSex());oneUserInfoPO.setUserBirthDay(oneUserInfoVO.getUserBirthDay());oneUserInfoPO.setUserComeFrom(oneUserInfoVO.getUserComeFrom());oneUserInfoPO.setUserResume(oneUserInfoVO.getUserResume());oneUserInfoPO.setUserSign(oneUserInfoVO.getUserSign());oneUserInfoPO.setEmailVisible(oneUserInfoVO.getEmailVisible());oneUserInfoPO.setAcceptAdvise(oneUserInfoVO.getAcceptAdvise());oneUserInfoPO.setContactMethod(oneUserInfoVO.getContactMethod());okOrNot=oneUserManageDAOJDBCImple.insertOneUserInfo(oneUserInfoPO);break;case 2: //目前是后台某种形式的管理员在进行注册oneAdminUserInfoPO=new AdminUserInfoPO();okOrNot=oneUserManageDAOJDBCImple.insertOneAdminUserInfo(oneAdminUserInfoPO);break;}return okOrNot;}public int doGetTotalRegisterUserCounter() throws WebBBSException{// UserManageDAOInterface oneUserManageDAOJDBCImple=null;int totalRegisterUserCounter=0;// oneUserManageDAOJDBCImple=new UserManageDAOJDBCImple();totalRegisterUserCounter=oneUserManageDAOJDBCImple.selectTotalRegisterUserCounter();return totalRegisterUserCounter;}}。
1.1构建BBS论坛系统项目用户信息管理模块业务层组件的实现示例1.1.1用户信息管理模块业务层组件的实现过程
1、添加UserInfoManageInterface接口
设计该UserInfoManageInterface接口
注意在该接口中对Java泛型的具体应用。
2、为该接口提供实现类UserInfoManageImple
继承于java.util.Observable类,并编程该实现类
3、添加一个工厂类,用来统一创建UserInfoManageInterface接口的对象实例
(1)UserInfoManageFactory类,包名称为com.px1987.webbbs.util ,并且继承于Observable类
(2)编程该UserInfoManageFactory类
4、在Sprirng的IoC的XML配置文件WebBBSServiceContext.xml中定义出该组件对象
<bean id="userInfoManageBean" class="erInfoManageImple">
<property name="userInfoManageDAOImpleBean">
<ref bean="userInfoManageDAOImpleBean"></ref>
</property>
<property name="adminUserInfoManageDAOImpleBean">
<ref bean="adminUserInfoManageDAOImpleBean"></ref> </property>
</bean>
1.1.2对用户信息管理业务层组件进行单元测试
1、添加测试用例TestUserInfoManageImple类
2、类名称和包名称
com.px1987.webbbs.modeltest erInfoManageImple
3、编程该测试用例类
4、执行该测试用例
将出现下面的结果
同时在控制台中也出现下面的状态提示,表明Hibernate也正确地执行了!。