收藏 分销(赏)

实训-Netctoss.doc

上传人:仙人****88 文档编号:9454726 上传时间:2025-03-26 格式:DOC 页数:16 大小:2.09MB
下载 相关 举报
实训-Netctoss.doc_第1页
第1页 / 共16页
实训-Netctoss.doc_第2页
第2页 / 共16页
点击查看更多>>
资源描述
Tarena [键入文档标题] [键入文档副标题] 实训成绩 批阅教师 日 期 实 训 报 告 课程名称 SSH三大框架项目实训 专业班级 学 号 学生姓名 指导教师 实训地点 2013 年 12 月 27日 实训成绩 批阅教师 日 期 实 训 报 告 课程名称 Java设计模式实训 专业班级 学 号 学生姓名 指导教师 实训地点 2013 年 10 月 25 日 实训成绩 批阅教师 日 期 实 训 报 告 课程名称 认证实训 专业班级 学 号 学生姓名 指导教师 实训地点 2014 年 1 月 10 日 实训成绩 批阅教师 日 期 实 训 报 告 课程名称 Java EE 项目实训 专业班级 学 号 学生姓名 指导教师 实训地点 2013 年 11 月 24 日 《NetCTOSS电信计费系统》需求说明书 目录 1. 引言 1 1.1. 编写目的 1 2. “资费管理“模块 1 2.1. 用例图 1 2.2资费浏览 2 2.3资费排序 3 2.5 删除资费 4 2.6 资费详细 4 2.7 增加资费 5 3 “帐务账号管理“模块 6 3.1 用例图 6 3.2 帐务账号浏览 7 3.3查询帐务账号 8 3.4 暂停帐务账号 9 4“业务账号管理“模块 9 4.1 用例图 9 4.2 业务账号浏览 10 4.3 查询业务账号 11 4.4 暂停业务账号 11 4.5 开通业务账号 12 5主要功能代码 13 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.2 帐务账号浏览 3.3查询帐务账号 3.4 暂停帐务账号 4“业务账号管理“模块 4.1 用例图 NetCTOSS 系统中”业务账号管理”模块的用例图如图所示。 4.2 业务账号浏览 4.3 查询业务账号 4.4 暂停业务账号 4.5 开通业务账号 4.6 删除业务账号 5主要功能代码 15 / 16 /** * 可以继承ActionSupport,这个类是Struts2默认调用 * 的Action类,它里面提供了一些常用的常量等。 */ public class CreateValidateCodeAction extends BaseAction { // output private InputStream imageStream; public String execute() { // 1.调用工具类,生成验证码及图片 Map<String, BufferedImage> imageMap = ImageUtil.createImage(); // 2.从imageMap中取到验证码,并放入session String imageCode = imageMap.keySet().iterator().next(); session.put("imageCimageCode);// 3.从imageMap中取到图片,转为输入流BufferedImage imageMap.get(imageCode); try { imageStream = ImageUtil.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 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 main(String[] args) throws Exception { IAccountDAO dao = new AccountDAOImpl(); Account acc = dao.findByIdcardNo("610121198906041115"); System.out.println( acc.getId() + " " + acc.getRealName() ); } public List<Account> findByCondition( String idcardNo, String realName, String loginName, String status, int page, int pageSize) throws DAOException { // 封装查询条件的值List<Object> params = new ArrayList<Object>(); // 动态拼SQL,主要是处理其条件 StringBuffer sb = buildFindSQL( idcardNo, realName, loginName, status, page, pageSize, params);List<Account> accs = new ArrayList<Account>(); Connection con = DBUtil.getConnection(); try { PreparedStatement ps = con.prepareStatement(sb.toString()); for(int i=0;i<params.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; } private StringBuffer buildFindSQL( String idcardNo, String realName, String loginName, String status, int page, int pageSize,List<Object> 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.append("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")) { // 下拉选当不为空或者不是全部选项时,我们才拼条件 sb.append("and status=? "); params.add(status); } sb.append("and rownum<? "); int nextMin = page*pageSize+1;params.add(nextMin);sb.append(") where r>? "); 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的情况。 * 若将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.setCreateDate(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<Object> params = new ArrayList<Object>(); // 拼查询总行数的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&& loginName.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;i<params.size();i++){ps.setObject(i+1, 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 startAccount(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(); }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服