一个软件项目的一生(认证考试)
一、概要
1.1、需求
某公司想开发一套学生信息管理系统,现在需要我们开发学生添加和查看功能模块,具体要求如下:
- 学生新增时需要提供的信息尽可能简单,以加快新增过程,学生的详细信息可以由其他模块负责获取。
- 学生信息需要保存至数据库中,同时数据库和用户数据都需要具有基本的安全保障措施。
- 所有用户录入的数据都需要进行数据验证。
- 所有用户操作都需要有明确具体的操作反馈。
1.2、语言和环境
- 实现语言:Java、JSP、Javascript、HTML
- 开发环境:MyEclipse
- 数据库系统:SQL Server
二、 实现步骤
2.1、绘制ER图
(1)按照标准绘制实体关系图
(2)可以采用Visio或其他工具完成
2.2、绘制类图与时序图
2.2.1、类图
2.2.2、时序图
2.2.3、编写详细设计说明书
(1)根据用户需求描述,按照标准格式编写详细设计说明书
2.2.4、数据库详细设计
(1)根据实体关系图完成数据表设计
1、启动服务 cmd -> net start mssqlserver
2、使用指处理,新建一个service.bat文件,在中间放入以下内内容:
@echo off :a echo 请选择要执行批处理命令: echo ------------------------------------------------------ echo 1 开启MSSQLServer echo 2 关闭MSSQLServer echo 3 开启Oracle echo 4 关闭Oracle echo 5 快速关机 echo 6 开启MySQL echo 7 关闭MySQL echo 8 开启Redis echo 9 关闭Redis echo a 开启Tomcat echo b 关闭Tomcat echo ------------------------------------------------------ Set/p var1=请输入您要执行的指令:[1/2/3/4/5/6/7/8/9/a/b] if %var1% ==1 goto C1 if %var1% ==2 goto C2 if %var1% ==3 goto C3 if %var1% ==4 goto C4 if %var1% ==5 goto C5 if %var1% ==6 goto C6 if %var1% ==7 goto C7 if %var1% ==8 goto C8 if %var1% ==9 goto C9 if %var1% ==a goto xa if %var1% ==b goto xb echo. cls goto a: echo. :C1 net Start MSSQLServer /Y goto EndApp echo. :C2 net Stop MSSQLServer /Y goto EndApp echo. :C3 net Start OracleServiceORCL /Y net Start OracleOraDb11g_home1TNSListener /Y goto EndApp echo. :C4 net stop OracleServiceORCL /Y net stop OracleOraDb11g_home1TNSListener /Y goto EndApp echo. :C5 shutdown -s -f -t 0 goto EndApp echo. :C6 net Start MySQL /Y goto EndApp echo. :C7 net Stop MySQL /Y goto EndApp echo. :C8 net Start redis /Y goto EndApp echo. :C9 net Stop redis /Y goto EndApp echo. :xa h: cd H:\InstallFiles\javaKit\apachetomcat7057windowsx64\apachetomcat7057\bin startup.bat goto EndApp echo. :xb h: cd H:\InstallFiles\javaKit\apachetomcat7057windowsx64\apachetomcat7057\bin shutdown.bat goto EndApp echo. :EndApp Set/p var3=是否继续操作:[y/n] If %var3% == y goto a:
3、手动启动
我的电脑->右键->管理->服务->找到SQL Server(MSSQLSERVER)
4、启动数据库管理工具
win+r->ssms命令
5、创建数据库
6、创建表
主键
添加字段
id 编号
name 名称
sex 性别
cno 班级
addr 地址
保存->表名Student
7、添加记录
8、测试
运行SQL
9、导出SQL
2.2.5、完成功能实现
启动MyEclipse
默认快捷键为alt+/,可以修改为其它习惯的快捷键,如tab,tab
新建项目,动态网页项目
填写项目名称,路径
项目创建成功
2.2.6、联署项目
2.2.7、启动Tomcat运行项目
2.2.8、创建实体包
包名:com.zhangguo.studentmis.entities 类名:Sutdent
package com.zhangguo.studentmis.entities; /** 学生实体 */ public class Student { /** 编号 */ private int id; /** 姓名 */ private String name; /** 班级 */ private String cno; /** 性别 */ private String sex; /** 地址 */ private String addr; public int getId() { return id; } //写 public void setId(int id) { this.id = id; } //读 public String getName() { return name; } public void setName(String name) { this.name = name; } public String getCno() { return cno; } public void setCno(String cno) { this.cno = cno; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getAddr() { return addr; } public void setAddr(String addr) { this.addr = addr; } }
2.2.9、创建学生服务,完成数据访问
类名:StudentService 实体名+Service 包名:com.zhangguo.studentmis.dao;
package com.zhangguo.studentmis.dao; import java.util.List; import com.zhangguo.studentmis.entities.Student; /**学生服务类*/ public class StudentService { public static void main(String[] args) { //实例化学生服务对象 StudentService ss=new StudentService(); Student e=new Student(); e.setName("张果果"); e.setCno("S3SU198"); e.setSex("女"); e.setAddr("中国深圳"); ss.add(e); //获得所有的学生对象,遍历 for (Student s : ss.getAll()) { System.out.println(s.getId()+","+s.getName()); } } /**查询所有学生信息*/ public List<Student> getAll(){ //定义SQL String sql="SELECT student.id, student.`name`,student.sex,student.cno,student.addr FROM student"; //访问数据库并返回数据 return JDBCUtils.queryForList(sql, Student.class); } /**添加学生信息*/ public int add(Student s){ //将执行的添加sql语句,?表示参数 String sql="INSERT student(name,sex,cno,addr) values(?,?,?,?);"; //执行sql并指定参数 return JDBCUtils.update(sql, s.getName(),s.getSex(),s.getCno(),s.getAddr()); } }
测试结果:
2.2.10、展示学生信息
<%@page import="com.zhangguo.studentmis.dao.StudentService"%> <%@page import="com.zhangguo.studentmis.entities.Student"%> <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; //实例化学生服务对象 StudentService ss = new StudentService(); %> <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <base href="<%=basePath%>"> <title>学生信息管理 - 查询</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> </head> <body> <h2>学生信息管理 - 查询</h2> <table width="80%" border="1"> <tr> <th>编号</th> <th>姓名</th> <th>性别</th> <th>班级</th> <th>籍贯</th> </tr> <%for (Student s : ss.getAll()) {%> <tr> <td><%=s.getId()%></td> <td><%=s.getName() %></td> <td><%=s.getSex()%></td> <td><%=s.getCno()%></td> <td><%=s.getAddr()%></td> </tr> <%}%> </table> </body> </html>
运行结果:
2.2.11、添加学生信息
add.jsp页面
<%@page import="com.zhangguo.studentmis.entities.Student"%> <%@page import="com.zhangguo.studentmis.dao.StudentService"%> <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; //请求编码设置为utf-8 request.setCharacterEncoding("utf-8"); //响应编码设置为utf-8 response.setCharacterEncoding("utf-8"); //学生服务 StudentService ss=new StudentService(); //封装学生对象 Student e=new Student(); e.setName(request.getParameter("name")); e.setCno(request.getParameter("cno")); e.setSex(request.getParameter("sex")); e.setAddr(request.getParameter("addr")); //消息 String m=""; //如果学生对象中存在数据 if(e.getName()!=null) { //执行添加 ss.add(e); m="添加成功"; } %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>学员信息系统 - 添加</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> </head> <body> <h2>学员信息系统 - 添加</h2> <form action="" method="post"> <p> <label for="name">姓名:</label> <input type="text" id="name" name="name" /> </p> <p> <label for="sex">性别:</label> <input type="text" id="sex" name="sex" /> </p> <p> <label for="cno">班级:</label> <input type="text" id="cno" name="cno" /> </p> <p> <label for="addr">籍贯:</label> <input type="text" id="addr" name="addr" /> </p> <button>提交</button> <p> <%=m %> </p> </form> <p> <a href="index.jsp">列表</a> </p> </body> </html>
运行结果:
(1) 根据不同的平台完成业务逻辑与持久层功能单元测试,并提交测试代码。
(2) 按照标准格式编写详细的测试用例文档
- 设计使用svn实现源代码管理
(1) 针对完成的学生信息管理模块提交到svn版本库。
- 制作安装包
将开发完成的学生信息管理模块制作成为一个安装包
三、下载与视频
svn与JDBC下载:链接: https://pan.baidu.com/s/1kVzCwon 密码: 84k7