1、实训NetctossTarena键入文档标题键入文档副标题实训成绩批阅教师日 期实 训 报 告课程名称 SSH三大框架项目实训 专业班级 学 号 学生姓名 指导教师 实训地点 2013 年 12 月 27日实训成绩批阅教师日 期实 训 报 告课程名称 Java设计模式实训 专业班级 学 号 学生姓名 指导教师 实训地点 2013 年 10 月 25 日实训成绩批阅教师日 期实 训 报 告课程名称 认证实训 专业班级 学 号 学生姓名 指导教师 实训地点 2014 年 1 月 10 日实训成绩批阅教师日 期实 训 报 告课程名称 Java EE 项目实训 专业班级 学 号 学生姓名 指导教师 实
2、训地点 2013 年 11 月 24 日NetCTOSS电信计费系统需求说明书1. 引言 1.1. 编写目的 本文档的目的是分析NetCTOSS 项目的系统需求,确定业务范围和核心功能,定义项目的专业名词,为后续的系统设计人员、开发人员和测试人员提供功能需求和非功能需求的详细定义,为测试人员提供测试用例设计的功能参考。 2. “资费管理“模块 2.1. 用例图 NetCTOSS 系统中”资费管理”模块的用例图如图7所示。2.2资费浏览2.3资费排序2.4 启用资费2.5 删除资费2.6 资费详细2.7 增加资费3 “帐务账号管理“模块 3.1 用例图 NetCTOSS 系统中”帐务账号管理”模
3、块的用例图如图所示。3.2 帐务账号浏览3.3查询帐务账号3.4 暂停帐务账号4“业务账号管理“模块4.1 用例图NetCTOSS 系统中”业务账号管理”模块的用例图如图所示。4.2 业务账号浏览4.3 查询业务账号4.4 暂停业务账号4.5 开通业务账号4.6 删除业务账号5主要功能代码/* * 可以继承ActionSupport,这个类是Struts2默认调用 * 的Action类,它里面提供了一些常用的常量等。 */public class CreateValidateCodeAction extends BaseAction / output private InputStream i
4、mageStream; public String execute() / 1.调用工具类,生成验证码及图片 Map imageMap = ImageUtil.createImage(); / 2.从imageMap中取到验证码,并放入sessionString imageCode = imageMap.keySet().iterator().next();session.put(imageCimageCode);/ 3.从imageMap中取到图片,转为输入流BufferedImage imageMap.get(imageCode); try imageStream = ImageUtil.
5、getInputStream(image); catch (IOException e) e.printStackTrace(); return error; return success; public InputStream getImageStream() return imageStream; public void setImageStream(InputStream imageStream) this.imageStream = imageStream;package com.tarena.dao.account;import java.sql.Connection;import
6、java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import com.tarena.dao.DAOException;import com.tarena.entity.Account;import com.tarena.util.DBUtil;public class AccountDAOImpl implements IAccountDAO public static void m
7、ain(String args) throws Exception IAccountDAO dao = new AccountDAOImpl(); Account acc = dao.findByIdcardNo(610121198906041115); System.out.println( acc.getId() + + acc.getRealName() ); public List findByCondition( String idcardNo, String realName, String loginName, String status, int page, int pageS
8、ize) throws DAOException / 封装查询条件的值List params = new ArrayList(); / 动态拼SQL,主要是处理其条件 StringBuffer sb = buildFindSQL( idcardNo, realName, loginName, status, page, pageSize, params);List accs = new ArrayList();Connection con = DBUtil.getConnection(); try PreparedStatement ps = con.prepareStatement(sb.t
9、oString();for(int i=0;iparams.size();i+)ps.setObject(i+1, params.get(i); ResultSet rs = ps.executeQuery();while(rs.next() Account acc = createAccount(rs);accs.add(acc); catch (SQLException e) e.printStackTrace();throw new DAOException(查询账务账号失败!, e); finally DBUtil.closeConnection(); return accs; pri
10、vate StringBuffer buildFindSQL( String idcardNo, String realName, String loginName, String status, int page, int pageSize,List params) StringBuffer sb = nStringBuffer();sb.append(select * from ();sb.append(select a.*,rownum r from account a where 1=1 );if(idcardNo != null & idcardNo.length() 0) sb.a
11、ppend(and idcard_no=? ); params.add(idcardNo); if(realName != null & realName.length() 0) sb.append(and real_name=? ); params.add(realName); if(loginName != null & loginName.length() 0) sb.append(and login_name=? );params.add(loginName); if(status != null& !status.equals(-1) / 下拉选当不为空或者不是全部选项时,我们才拼条
12、件sb.append(and status=? );params.add(status); sb.append(and rownum? );int lastMax = (page-1)*pageSize;params.add(lastMax);System.out.println(sb.toString();return sb;private Account createAccount(ResultSet rs) throws SQLException Account a = new Account(); a.setId(rs.getInt(ID); /* * 查询时,有默认为0的情况。 *
13、若将0带到修改页面再保存, * 会传递给修改方法一个推荐人ID为0的值,* 由于该字段存在外键约束,找不到为0的那个* 外键值,导致报错,因此这里做这样的判断。 * */a.setRecommenderId(rs.getObject(RECOMMENDER_ID)=null?null:rs.getInt(RECOMMENDER_ID);a.setLoginName(rs.getString(LOGIN_NAME);a.setLoginPassword(rs.getString(LOGIN_PASSWD);a.setStatus(rs.getString(STATUS);a.setCreateD
14、ate(rs.getDate(CREATE_DATE);a.setPauseDate(rs.getDate(PAUSE_DATE);a.setCloseDate(rs.getDate(CLOSE_DATE);DER); (LAST_LOGIN_IP); return a; public int findTotalPage( String idcardNo, String realName, String loginName, String status, int pageSize) throws DAOException List params = new ArrayList(); / 拼查询
15、总行数的SQLStringBuffer sb = new StringBuffer();sb.append(select count(*) from account where 1=1 );if(idcardNo != null& idcardNo.length() 0) sb.append(and idcard_no=? );params.add(idcardNo); if(realName != null& realName.length() 0) sb.append(and real_nam? );params.add(realName);if(loginName != null& lo
16、ginName.length() 0) sb.append(and login_name=? )params.add(loginName); if(status != null & !status.equals(-1) sb.append(and status=? );params.add(status); Connection DBUtil.getConnection(); try PreparedStatement ps = con.prepareStatement(sb.toString();for(int i=0;iparams.size();i+)ps.setObject(i+1,
17、params.get(i);ResultSet rs = ps.executeQuery();if(rs.next() int rows = rs.getInt(1);if(rows%pageSize = 0) return rows/pageSize; else return rows/pageSize+1; catch (SQLException e) e.printStackTrace(); throw new DAOException( 查询总页数失败!,e); finally DBUtil.closeConnection(); return 0; public void startA
18、ccount(int id) throws DAOException String sql = update account set status=0, +pause_date=null where id=?;Connection conDBUtil.getConnection(); try con.setAutoCommit(false); PreparedStatement ps = con.prepareStatement(sql); ps.executeUpdate(); mit(); catch (SQLException e) e.printStackTrace(); try con.rollback();
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1