一个软件项目的一生(认证考试)

一、概要

1.1、需求

某公司想开发一套学生信息管理系统,现在需要我们开发学生添加和查看功能模块,具体要求如下:

  1. 学生新增时需要提供的信息尽可能简单,以加快新增过程,学生的详细信息可以由其他模块负责获取。
  2. 学生信息需要保存至数据库中,同时数据库和用户数据都需要具有基本的安全保障措施。
  3. 所有用户录入的数据都需要进行数据验证。
  4. 所有用户操作都需要有明确具体的操作反馈。

1.2、语言和环境

  1. 实现语言:Java、JSP、Javascript、HTML
  2. 开发环境:MyEclipse
  3. 数据库系统: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)      按照标准格式编写详细的测试用例文档

  1. 设计使用svn实现源代码管理

(1)      针对完成的学生信息管理模块提交到svn版本库。

  1. 制作安装包

将开发完成的学生信息管理模块制作成为一个安装包

三、下载与视频

文档下载1

视频教程

svn与JDBC下载:链接: https://pan.baidu.com/s/1kVzCwon 密码: 84k7

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据和云

oracle 12.2 local temp的原理和实现

从Oracle数据库12c开始,可以将Oracle Clusterware和Oracle RAC配置在大型集群中,称为Oracle Flex集群。 这些集群包含...

2749
来自专栏IT进修之路

原 荐 SpringBoot整合mybati

1563
来自专栏杨建荣的学习笔记

记一次数据库重启后归档急剧增加的问题(98天)

在本地的环境中测试外部表的性能,由于空间有限,不一会儿归档的空间就爆了。然后文件貌似出现了系统级的问题,刚刚rm掉的归档日志文件。隔了几秒钟再ls,就出现了。怎...

3164
来自专栏玄魂工作室

PHP代码审计Day1 - in_array函数缺陷

--------------------------------------------------------------------------------...

631
来自专栏Jerry的SAP技术分享

使用JDBC操作SAP云平台上的HANA数据库

本文假设您对JDBC(Java Database Connectivity)有最基本的了解。您也可以将其同ADBC(ABAP Database Connecti...

1273
来自专栏刘望舒

Android PMS的创建过程

PMS的创建过程分为两个部分进行讲解,分别是SyetemServer处理部分和PMS构造方法。其中SyetemServer处理部分和AMS和WMS的创建过程是类...

733
来自专栏NetCore

[实录]解决Migrator.Net 小bug

好久没写了,平时比较忙,只能趁周末的时候,写一点小东西,自己也记录一下。 平时我们做项目的时候,都会有自己的数据访问层,为了能方便以后的升级,我们一般会抽象出数...

1975
来自专栏Jackson0714

【T-SQL性能优化】01.TempDB的使用和性能问题

33813
来自专栏沃趣科技

复制状态与变量记录表 | performance_schema全方位介绍

不知不觉中,performance_schema系列快要接近尾声了,今天将带领大家一起踏上系列第六篇的征程(全系共7个篇章),在这一期里,我们将为大家全面讲解p...

1263
来自专栏冷冷

【springboot】 springboot 整合mybatis-plus

springboot整和mybatis-plus 整合步骤 1.pom.xml 添加mp依赖 <!-- mybatis-plus begin --> <depe...

3329

扫码关注云+社区