Java卒業プロジェクトの開発プロセス

Java コードを使用して大学生のニーズを満たす卒業設計システムを作成するにはどうすればよいですか?

この記事は学習のみを目的としており、私と同じ大学経験を持つ一部の学生を助けることを目的としており、主に 2 つの考えでこの記事を書いています
。この記事を読んで、自分の方向性を明確にし、好きな専攻と方向性を選択し、Java やテスト、C#、C++、その他のコンピューター専攻など、大学の 4 年間でこの知識を学ぶために熱心に取り組むことができるようになることを願っています。興味がある限り、そのまま続けてください。
2. まだ卒業していないが卒業期間中の学生にとって、この記事が卒業プロジェクトを完了し、この体系的な操作から Java プログラミングを学ぶきっかけになれば幸いです。
厳粛に宣言します: この記事は学習のみを目的としており、商業目的で使用しないでください。違反者は自己の責任で結果を負います。
補足: この記事のすべての教育内容は特定の Java 基盤に基づいており、記事の内容は限られていますが、疑問がある場合は、WeChat f2468433277 を追加して詳細な相談を行うことができます。
1. 事前準備
学校のニーズに合わせた Java 卒業設計システムには、以下の開発環境とツールが必要です。
1. jdk。(jdk は Java 開発に必要な開発環境で、バージョンは自由に選択できます。ここでは、jdk1.7 をデモ版として使用します。インストール チュートリアルはオンラインで検索でき、ネットワーク全体で見つけることができます。) 2 .mysql
(Mysql はデータベースの一種です。Java 開発では、ほとんどがデータ ストレージ センターとして mysql を使用します。バージョンは自分で選択してください。インストール チュートリアルはオンラインで見つけることができます。各バージョンには若干の違いがあります。使用することをお勧めします)最後まで 1 つのバージョン。ここでは mysql5.7 がデモ バージョンです。)
3. tomcat。(バージョンは自由に選択できますが、非インストール版の使用を推奨します。ここではデモ版としてtomcat8.5を使用します。) 4.
Maven。(卒業制作は大規模な管理システムが多いため、ここではmavenプロジェクトを作成することを指導するため、mavenが必要となり、インストールされていないバージョンを使用することを推奨します。ここではmaven3.5を使用しています。 Maven について詳しく知りたい場合は、オンラインで確認できるので、ここでは説明しません。)
ヒント: 最初の記事では、txt ファイルを介して Java コードを直接記述し、それを cmd ウィンドウで実行できます。2 番目の記事では、Java コードを使用してデータベースとの対話を完了できます。以下にいくつかの補助ツールを示します。コードを素早く書くことができます。
5. アイデアエディター。(私が学習したのはアイデアエディタなので、ここではデモンストレーションツールとしてアイデアを使用します。Eclipseエディタを使用する場合、関連する操作は異なります。コード部分を見るだけで大​​丈夫です。) 6. sqlYog または Navicat
(データベース視覚化ツール、データベースとテーブルの構築は、コード部分を直接スキップし、プログラミング プロセスを簡素化し、プログラミング効率を向上させることができます。) 最後の 2 つのプログラムはオンラインでダウンロードでき、完全に
無料で使用するには、特定の操作を使用することをお勧めします。
2. データベースの設計と構築
開発する前に、急いでコードを書くのではなく、システムがどのようなものであるべきか、つまりどのような機能が含まれているかを考え、その機能に応じて対応するデータテーブルを分割します。記事の限界について、ここでは私が作成したクリーニング店管理システムを例に挙げて説明します。
まず、管理システムなので登録やログイン機能が必要なのでユーザーテーブルが必要、服装を管理する必要があるので服装テーブルが必要、服装のチェックも必要です。品質に問題があるので衣類の情報を確認したい 衣類には洗濯時の状態があるので洗濯台が必要、洗濯後は倉庫に保管する必要があるため在庫台が必要です。この考え方に従ってデータベースが設計され、各テーブルが特定のフィールドに関連付けられ、テーブルが構築された後に次のステップが開始されます。
3. フレームワークを探す
Java 開発プロセスでは、まずどのようなプロジェクトを開発するのか、どのようなアーキテクチャを使用するのか、C/S か B/S なのかを明確にする必要があります。平たく言えば、C/Sはクライアントタイプ、B/SはWebバージョンです。現在人気のあるものは基本的に B/S アーキテクチャであるため、Java バックグラウンド フレームワークと美しいフロントエンド フレームワークが必要です。
大学生として、美しいインターフェイスを備えたフロントエンド ページをデザインしたい場合は、強力なフロントエンド開発能力と多くの時間が必要です。そのため、インターネットで完全なフロントエンド フレームワークを見つけることをお勧めします。エレガントでありながら時間の節約にもなります。
また、現在市場には人気のあるJavaバックエンドフレームワークが数多く出回っており、大学で学ぶ学生のほとんどがSSHを使用していますが、この形式はすでに廃止されており、インターネット上で教育用のチュートリアルを見つけることは困難です。社会の主流にはふさわしくありません。SSM フレームワークは、軽量でシンプル、安定性と効率性が高く、大学生の卒業プロジェクトに適しています。SpringBootの配布は大学生にはあまりお勧めできませんが、内容は多岐にわたりますので、入学したばかりの大学生であれば最初から最後までしっかりと勉強することをお勧めしますが、卒業間近の学生であれば、 , まず連絡しないことをお勧めします。第一に、卒業プロジェクトの開発に影響を与えます。第二に、開発の理解を妨げます。Java の他のフレームワークを理解して学習した後、それについて学ぶことができます。
私のダウンロード リソースには SSM プロジェクトの純粋なバージョンがあります。ダウンロードして使用してください。
4 番目、コード部分
次に、トピックであるコード部分に入ります。
まず、SSM 純粋バージョンのフレームワークをダウンロードし、idea を通じて開きます。操作手順は次の図に示されています。
ここに画像の説明を挿入
ダウンロード後に解凍するプロジェクトを選択します。
ここに画像の説明を挿入
ここでこれら 2 つを選択すると、残りは次へになります。
ここに画像の説明を挿入
次に、アイデアの [ファイル] -> [設定] で 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 層、サービス層マッパー層 (dao 層とも呼ばれます) の 3 層構造に分かれています。表示コードを例として、それらを 1 つずつリストします:
(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") は、フロントエンドのパスに相当します。フロントエンドとバックエンドの相互作用。フロントエンド ページは、このパスを通じてこのメソッドを見つけます。このメソッドは、サービス層のデータ フェッチ メソッドを呼び出し、返された List コレクションをコントロール層に送信します。コントロール層は、List を通じて渡された値を受け取り、それらを送り返します。 ModelAndView を介してフロントエンドに送信されます。
サービス層コード

List<Emp> show(PageBean page);

マッパーレイヤーコード:

<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>

これはフロントエンドとバックエンドの相互作用のためのコード全体であり、データベースの「チェック」操作に相当します。その他の追加、削除、変更はコードの一部を変更するだけで済みます。記事の内容、他のコードは詳しく説明しません、WeChatを追加して理解することができます、Java卒業設計の指導と指導を提供します。

おすすめ

転載: blog.csdn.net/fzt12138/article/details/110817353