Java毕业设计的开发流程

如何使用Java代码制作一份满足大学生需求的毕业设计系统?

该文章仅限学习使用,旨在帮助某些和我一样有相同大学经历的同学,我写这篇文章,主要有两点想法:
一、未毕业且尚处于初入学的学生,希望我这篇文章能让你明确自己的方向,选择自己喜欢的专业和方向,通过四年大学时光,努力去学习这方面知识,java也好,测试也罢,C#、C++等所有的计算机方向专业,只要有兴趣,就去坚持。
二、未毕业但尚处于毕业期的学生,希望我这篇文章能带领你做完毕业设计,并从这次系统化的操作中学会Java编程。
郑重声明:该文章仅用于学习,请勿用于商业用途,违者后果自负!
补充说明:该文章中所有教学内容基于一定的Java基础,文章所写内容有限,如果疑惑不解之处,可加微信f2468433277详细咨询。
一、前期准备
一个满足学校需求的Java毕业设计系统,需要以下开发环境和工具:
1、jdk。(jdk是Java开发的必要开发环境,版本可自由选择,这里以jdk1.7为示范版本,安装教程可在线搜索,全网均可找到。)
2、mysql。(mysql是数据库的一种,在Java开发中,大多以mysql为数据存储中心,版本请自行选择,安装教程网上均可找到,每个版本之间存在少量差距,建议一个版本用到底,这里以mysql5.7为示范版本。)
3、tomcat。(版本可自由选择,建议使用非安装版,这里以tomcat8.5为示范版本。)
4、maven。(由于毕业设计大多为大型管理系统,故这里教学创建的是maven项目,所以需要用到maven,建议使用非安装版,这里以maven3.5为示范版本,如想了解更多关于maven的知识,可上网查询,这里不做讲解。)
提示:拥有第一条,你可直接通过txt文件编写Java代码,并在cmd窗口运行,拥有第二条,你可以使用Java代码完成与数据库的交互,下面还需要几个辅助工具,能更帮助你快速的完成代码编写。
5、idea编辑器。(由于本人所学为idea编辑器,故这里使用idea作为示范工具,若你使用的是eclipse编辑器,相关操作会有不同,你可以只看代码部分。)
6、sqlYog或者Navicat。(数据库的可视化工具,建库建表可直接跳过代码部分,简化编程过程,提高编程效率。)
最后两条的程序可在网上下载,建议使用某些操作完成免费使用。
二、设计和建立数据库
做开发前,先别急着写代码,首先要思考自己的系统应该是什么样的,即含有哪些功能,根据这些功能划分出相应的数据表,由于文章限制,我这里以自己制作过的一个干洗店管理系统为例做讲解。
首先,由于是管理系统,我们需要有注册和登录功能,所以需要一个用户表,另外要对衣物做管理,所以需要一张衣物表,衣物需要检验是否存在质量问题,所以需要一张检验衣物信息表,衣物清洗时有状态,因此需要一张清洗衣物表,衣物洗完后需要存放在仓库,因此需要一张库存表。根据这样的思路,将数据库设计出来,每张表使用特定字段关联,建好表以后再开始下一步。
三、寻找框架
在Java开发过程中,我们首先要明确自己想开发的是什么项目,使用什么架构,是C/S还是B/S。通俗点讲,C/S就是客户端类型,B/S就是网页版。目前流行的基本都是B/S架构,所以你需要一个Java后台框架以及一个优美的前端框架。
作为一个大学生,想要设计一个界面精美的前端页面,需要很强的前端开发能力,以及大量的时间,所以这里我建议大家去网上找一个完整的前端框架,自己进行修改,一样可以做的非常优美,而且还节省了时间。
另外,目前市面上流行的Java后台框架非常多,大学所学基本都是SSH,这种形式的早已经淘汰了,网上也很难找到教学教程,不适合社会主流。SSM框架比较适合大学生的毕业设计,轻简异动,稳定高效。SpringBoot分布式的不建议大学生涉及,这里面涵盖的知识非常广,如果你是刚入校的大学生,我建议你从头到尾好好学,但如果你是临近毕业的学生,建议你先别接触,第一会影响你毕业设计的开发,第二会扰乱你对开发的认知,等了解了学会了Java的其他框架,再去接触学习。
我的下载资源中有纯净版的SSM项目,下载即可使用!
四、代码部分
接下来,我们进入正题——代码部分。
首先,我们将SSM纯净版框架下载下来,通过idea打开。操作步骤如下图所示:
在这里插入图片描述
选择下载后解压的项目:
在这里插入图片描述
此处选择这两个,剩下的一直Next就行:
在这里插入图片描述
接下来,在idea的File—>settings里找到maven,完成如下配置:
在这里插入图片描述
根据数据库字段创建实体类:
在这里插入图片描述
文章内容有限,这里以数据展示功能为例,做详细介绍:
1、创建jsp前端页面代码(这里可以将在网上下载的前端框架进行修改使用)

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
    <title>Title</title>
    <script src="/js/jquery-3.3.1.min.js"></script>
</head>
<body>
<%--1.条件查询--%>
<form  id="myForm" action="/emp/show" method="post" style="text-align: center">
    姓名:<input type="text" name="name" value="${page.name}">

    生日:<input type="date" name="startBirth"  value="<fmt:formatDate value='${page.startBirth}' pattern='yyyy-MM-dd'/>" >-
    <input type="date" name="endBirth" value="<fmt:formatDate value='${page.endBirth}' pattern='yyyy-MM-dd'/>" >
    部门:<select name="deptId" >
    <option value="0">--请选择--</option>
    <c:forEach var="dept" items="${depts}">
        <option value="${dept.did}"
                <c:if test="${dept.did==page.deptId}">selected=true</c:if>
        >${dept.dname}</option>
    </c:forEach>
</select>
    <input type="hidden" id="pageNum" name="currPage" value="1">
    <input type="submit" value="搜索">
</form>
<%--2.数据展示--%>
<table  align="center" cellpadding="15" cellspacing="0" border="1">
    <tr>
        <td><input type="checkbox" id="checkAll">全选</td>
        <td>编号</td>
        <td>姓名</td>
        <td>年龄</td>
        <td>性别</td>
        <td>生日</td>
        <td>津贴</td>
        <td>工资</td>
        <td>部门</td>
        <td>大头贴</td>
        <td><input type="button" id="batchDel" value="批量删除">| <input type="button" onclick="location.href='/emp/add1'" value="新增"></td>
    </tr>
    <c:if test="${not empty list}">
        <c:forEach var="emp" items="${list}">
            <tr>
                <td><input class="checkNow" value="${emp.id}" type="checkbox"></td>
                <td>${emp.id}</td>
                <td>${emp.name}</td>
                <td>${emp.age}</td>
                <td>${emp.sex}</td>
                <td><fmt:formatDate value="${emp.birth}" pattern="yyyy-MM-dd"/></td>
                <td>${emp.bonus}</td>
                <td>${emp.salary}</td>
                <td>${emp.dept.dname}</td>
                <td><a href="/emp2/down?fname=${emp.imgurl}"><img src="${emp.imgurl}" alt="" width="120px" height="120px"></a></td>
                <td><a href="/emp/deleteById/${emp.id}">删除</a>|
                    <a href="/emp/update1/${emp.id}">修改</a></td>
            </tr>
        </c:forEach>
    </c:if>
</table>
<%--3.分页--%>

<table align="center" cellpadding="10" cellspacing="10" border="1">
    <tr>
        <td><a href="javascript:goPage(1)">首页</a></td>
        <td><a href="javascript:goPage(${page.currPage-1})">上一页</a></td>
        <c:forEach var="i" begin="1" end="${page.totalPage}">
            <td><a href="javascript:goPage(${i})">${i}</a></td>
        </c:forEach>
        <td><a href="javascript:goPage(${page.currPage+1})">下一页</a></td>
        <td><a href="javascript:toPage()">跳转</a>到第<input size="2" type="text" value="${page.currPage}" id="go">页</td>
        <td><a href="javascript:goPage(${page.totalPage})">尾页</a></td>
    </tr>
</table>

<!--js部分-->
<script>

    $("#batchDel").click(function () {
        //1.获取到选中的ids  2.ids数组 送到后台
        var ids=new Array();
        $(".checkNow:checked").each(function () {
            var id=$(this).val()
            ids.push(id);
        });
        $.post("/emp2/batDel",{ids:ids.toString()},function (data) {
            location.href="/";
        });
    });

    //prop和attr的区别?
//实现全选和全不选
    $("#checkAll").click(function () {
        if($(this).prop("checked")){
            $(".checkNow").prop("checked",true)
        }else {
            $(".checkNow").prop("checked",false)
        }
    });

    function goPage(page) {
        var total=${page.totalPage};

        if(page>total){
            page=total;
        }
        if(page<1){
            page=1;
        }

        $("#pageNum").val(page);
        $("#myForm").submit()
    }
    function toPage() {
        var page=$("#go").val();
        goPage(page)
    }
</script>

</body>
</html>

2、书写后台代码,Java项目一共分为三层结构,其中包含控制器层Controller,服务层Service层以及服务层mapper层也叫dao层。以展示代码为例,现在一一列举:
(1)、控制层

@RequestMapping("/show")
    public ModelAndView show(PageBean page, ModelAndView mav){
    //取 调 存 转

    //查询所有的部门--show.jsp中下拉框展示所有的部门
    List<Dept> depts=service.selectDepts();
    //模糊分页条件查询员工
    List<Emp> list=service.show(page);

    //存  depts list  page
    mav.addObject("depts",depts);
    mav.addObject("list",list);
    mav.addObject("page",page);
    //转
    mav.setViewName("show");
    return mav;
    }

该代码中需要结合部门表进行数据处理,所以代码看起来繁琐,其实数据的展示可以简化,@RequestMapping(“/show”)对应的是前台的路径,这是前后台交互必须的路径。前端页面通过该路径找到该方法,该方法调用service层的取数据方法,将返回的List集合给到控制层,控制层通过List的方式接受传过来的值,通过ModelAndView 发回给前端。
service层代码

List<Emp> show(PageBean page);

mapper层代码:

<select id="selectByExample" parameterType="com.pojo.DeptExample" resultMap="BaseResultMap">
    select
    <if test="distinct">
      distinct
    </if>
    <include refid="Base_Column_List" />
    from dept
    <if test="_parameter != null">
      <include refid="Example_Where_Clause" />
    </if>
    <if test="orderByClause != null">
      order by ${orderByClause}
    </if>
    <if test="rows != null">
      <if test="offset != null">
        limit ${offset}, ${rows}
      </if>
      <if test="offset == null">
        limit ${rows}
      </if>
    </if>
  </select>

这就是一整段前后台交互的代码,相当于数据库中的“查”操作,其他的增删改只需要修改部分代码即可,由于文章内容限制,其他代码就不做过多赘述,如有疑问,可加微信了解,本人提供Java毕业设计的指导和教学。

猜你喜欢

转载自blog.csdn.net/fzt12138/article/details/110817353