SSM +63813 (無料のソース コード) に基づくペット養子縁組システムの設計は、コンピューター卒業プロジェクト JAVA、PHP、クローラー、APP、小規模プログラム、C#、C++、Python、データ視覚化、ビッグ データ、およびコピーライティングのフルセットに使用できます。

SSMペット譲渡制度

まとめ

ペットの遺棄は、都市環境や住民生活に影響を与える無視できない要因となっています。これに基づいて、この記事ではペットの養子縁組システムを設計および実装します。ユーザーはこのシステムを利用して、ペットに関する情報の閲覧・検索、里親募集の申請、愛情を持った支援を行うことができます。このシステムは、ペットの養子縁組の困難などの問題を効果的に解決し、ペットと社会的な動物愛好家との間に便利なコミュニケーションの橋を確立します。

ペット養子縁組システムは、クロスプラットフォーム Java 言語を使用して開発されたブラウザおよびサーバー アーキテクチャ プラットフォームに基づいており、論理制御に SSM フレームワーク、データを保存するMySQLデータベースを使用し、最後に Tomcat サーバーがリリースされます。複数の環境で。

キーワード:ペットの養子縁組, SSMフレームワーク, MySQL データベース, Java

SSMペット養子縁組システム

抽象的な

ペットの遺棄は、都市環境や住民生活に影響を与える無視できない要因となっています。これに基づいて、この記事ではペットの養子縁組システムを設計および実装します。このシステムでは、ペットの探し方や里親募集、愛情あふれるサポートなどの情報を閲覧することができます。このシステムは、ペットの養子縁組作業の困難などの問題を効果的に解決し、ペットと社会的動物愛好家との間に便利なコミュニケーションの橋を確立します。

ペット養子縁組システムは、クロスプラットフォーム JAVA 言語を使用して開発されたブラウザおよびサーバー アーキテクチャ プラットフォームに基づいており、論理制御に SSM フレームワーク、データを保存する MySQL データベース、そして最後にリリースを完了する Tomcat サーバーを使用します。システムは複数の環境で実行できます。

キーワード: ペットの養子縁組、SSM フレームワーク、MySQL データベース、Java

目次

第1章;序章

1.1 研究の背景

1.2 研究状況

1.3 この記事の構成

第2章 関連技術の紹介

2.1 開発技術

2.2 MVVMパターン

2.3 MySQL データベース

2.4 B/S構造

2.5 SSM フレームワークの概要

2.6 Vue.jsの主な機能

第 3 章 システム分析

3.1 実現可能性の分析

3.1.1 法的実現可能性の分析

3.1.2 技術的実現可能性分析

3.1.3 経済的実現可能性分析

3.2 機能要件の分析

3.3 非機能要件の分析

3.4 ユースケース分析

3.5 ビジネスプロセス分析

3.6 データプロセス分析

第4章 システム設計

4.1 システムアーキテクチャ設計

4.2 システムの機能構成

4.3 機能モジュールの設計

4.4 データベース設計

4.4.1 ER図

4.4.2 テーブル構造の設計

第5章 システムの導入

5.1 開発ツール

5.2 登録モジュール

5.3 ログインモジュール

5.4 ユーザーモジュール

5.4.1 プロファイルモジュール

5.4.2 ペット情報モジュール

5.4.3 ショッピングモールモジュール

5.4.4 アドレス管理モジュール

5.4.5 注文管理モジュール

5.4.6 ペット情報モジュール

5.4.7 採用フィードバックモジュール

5.5 管理者モジュール

5.5.1 Webサイト管理モジュール

5.5.2 人事管理モジュール

5.5.3 コンテンツ管理モジュール

5.5.4 ショッピング管理モジュール

5.5.5 モジュール管理

5.5.6 個人管理モジュール

第6章 システムテスト

6.1 テストの概要

6.2 テストプロセス

6.2.1 ログインテスト

6.2.2 情報入力テスト

6.2.3 情報更新テスト

6.2.4 情報削除テスト

6.3 テスト結果

第7章 総括と展望

7.1 概要

7.2 展望

参考文献

謝辞

第1章; 序章

1.1 研究の背景

近年の我が国の経済と科学技術の急速な発展に伴い、国民の生活水準は向上し続けています。人々は物質的な豊かな生活を手に入れた後、精神的な生活も豊かにしたいという要求が日に日に高まっています。ペットを家族の一員として扱い、一緒に暮らし、ペットから喜びを得るため、ペットを心の伴侶として飼うことは多くの人々の選択となっています。しかし、人々はペットを飼うことを一種の精神的な糧や人生の友と考えていますが、さまざまな理由でやむを得ずペットを手放す人もいます。ペットとは通常、飼い主のいないペットを指します。都市における野良動物には、主に野良犬や野良猫が含まれ、主に人間によって捨てられたり、公共の場所で迷子になったりします。今日、わが国では野良動物がますます増えていますが、野良動物の管理は非常に混乱しています。

ペットの過剰数の問題を解決するために、ビ州や都市に公的または民間のペット救助センターが設立されました。しかし、地域的な制限、資金不足、宣伝の難しさ、その他の問題により、ペットの養子縁組やスポンサーシップの発展は遅れています。しかし、Intcmet テクノロジーの発展、特に電子商取引の急速な普及により、ペットの養子縁組とスポンサーシップの普及と急速な発展に良い条件が提供されました。インターネット上には関連する養子縁組や救済のウェブサイトがいくつかありますが、時期尚早の情報更新、地理的制限、人的・物的リソースの不足などの問題により、養子縁組をする意思と条件を持っている思いやりのある人々が養子縁組を行うことができなかったり、延期したりしています。救助ステーション内の動物の数が多すぎると、資金が不足し、好循環を形成できません。したがって、オンラインのペット養子縁組システムの開発が最優先事項となっています。

1.2 研究状況

米国とカナダでは、ペットは民間の救助団体に引き取られます。両国には国立の非政府動物保護団体があり、その一部は政府の資金で、残りは民間の寄付で賄われています。SPCA(動物虐待防止協会)は、動物の声を人間に伝えることを目的としてヘンリー・バーグによって設立された非営利の公益団体です。捨てられた動物や虐待された動物の保護を専門とする SCPA は現在、ほぼ米国全土に広がり、その影響力は香港動物虐待防止協会 (HKSPCA) など世界の多くの国や地域に広がっています。 )香港では、海外では野良動物保護団体が大規模であるため、その公式ウェブサイトはより正式で、より完全な機能を備えています。たとえば、SPCA の公式 Web サイトには、寄付モジュール、科学普及モジュール、採用モジュール、調査モジュール、紹介モジュールがあります

我が国では、ペットの救助と養子縁組は常に社会全体に広く関心を寄せている問題の 1 つであり、 2017 年にはすでに全国 2 つのセッションの代表者がペットの救助活動を改善するための提案を提出し、社会から広く注目を集めました。これはまた、我が国のペットレスキュー事業が一歩ずつ成長していることを示していますしかし、ペットのレスキュー活動は長期にわたる複雑な作業であり、その遂行には多大な労力、物資、資金が必要となります。マナーは検討すべき重要な問題です現在、中国の野良動物の救出、養子縁組、管理の仕組みは十分に不完全であり、小規模な救出活動は民間による自発的なボランティア救出ステーションの組織に頼っている。中国のほとんどのペットの養子縁組および保護団体は小規模であるため、団体の Web サイトには主に 2 つのタイプがあります。1 つは、ブログをそのまま Web サイトとして利用する方法です。この方法で構築された Web サイトは比較的シンプルで、通常は記事を公開する機能のみを備えています。訪問者と救援機関との間のコミュニケーションは、ブログに予約された連絡先情報と、 Douban Blog を使用して確立されたツールなど、その他のツールペット養子縁組救助シェルター。もう 1 つは、既製の Web サイト構築テンプレートを使用して Web サイトを構築する方法で、この方法で構築された Web サイトは以前の方法よりも美しくなりますが、実用性に欠けますペットの救助および養子縁組システムの開発を加速するにはどうすればよいですか? この問題の解決策が、今日の電子商取引とペットの養子縁組の完璧な組み合わせの鍵となります。インターネットの急速な発展、人々のインターネットへの依存、そしてインターネットは、人々にこのような便利で高速な終日サービスをもたらしました。同時に、80年代、90年代00年代に生まれた若者にとって、インターネットの仮想空間が主な活動の場となり従来のライフスタイルは徐々に新しいライフスタイルに置き換えられ、誰もが自分たちのニーズを意識的に実現していきます。インターネット。

1.3 この記事の構成

この記事の調査と設計の内容は、次の 6 つの章で構成されています。

第 1 章の紹介。この記事の冒頭では、このトピックの研究背景と重要性についてテキストで説明します。

第 2 章: 関連技術の紹介。主にSSMフレームワーク、Java組み込みスクリプト言語、B/Sモードなどを紹介します。

第 3 章: システム分析。システム要件全体の説明、システム要件を機能面、非機能面などから分析して、システムが実装可能かどうかを分析します。

第 4 章: システム設計。この記事の重要な部分では、システム アーキテクチャの詳細な設計と、いくつかの主要な機能モジュールの設計手順について説明します。

第 5 章: システムの実装。このシステムは、前提となる開発ツールの導入と、その後の機能コードの実装に分かれています。

第 6 章: システムのテスト。システム完成後、各モジュールのテストケースに基づいて各モジュールの機能テストが行​​われます。

第2章 関連技術の紹介

2.1 開発技術

このシステムのフロントエンド部分は B/S モードを使用した MVVM モデルに基づいて開発され、バックエンド部分は Java の ssm フレームワークに基づいて開発されています。

フロントエンド部分: フロントエンド フレームワークは、人気のあるプログレッシブ JavaScript フレームワーク Vue.js を使用します。Vue-Router と Vuex を使用して動的ルーティングとグローバル状態管理を実現し、Ajax を使用してフロントエンドとバックエンドの通信を実現し、Element UI コンポーネント ライブラリを使用してページのプロトタイプを迅速に作成し、プロジェクト フロントエンドを使用してグリッド レイアウトによる応答性を実現します。 PC、タブレット、携帯電話などに適応できます。さまざまな画面サイズに最適なレイアウト表示。

バックエンド部分: ssm を開発フレームワークとして使用し、MyBatis、Redis、およびその他の関連テクノロジーを統合します。

2.2 MVVMパターン

MVVMはModel-View-ViewModelの略称です。これは本質的に MVC の改良版です。MVVM はビューの状態と動作を抽象化し、ビュー UI とビジネス ロジックを分離できるようにします。もちろん、ViewModel はこれらのことをすでに行っており、モデルのデータを取り出して、コンテンツを表示する必要があるためにビューに含まれるビジネス ロジックの処理に役立ちます。Microsoft の WPF は、Silverlight、オーディオビデオ3Dアニメーションなどの新しい技術エクスペリエンスをもたらし、その結果、ソフトウェア UI レイヤーがより詳細でカスタマイズ可能になります。同時に、技術レベルでは、WPF はバインディング、依存関係プロパティ、ルーテッド イベント、コマンド、DataTemplate、ControlTemplate などの新機能ももたらします。MVVM (Model-View-ViewModel) フレームワークの起源は、 MVP (Model-View-Presenter)パターンと WPF を組み合わせたアプリケーション手法から進化した新しいアーキテクチャフレームワークです。これは、オリジナルの MVP フレームワークに基づいており、ますます複雑になる顧客ニーズの変化に対応するために WPF の新機能が組み込まれています。

2.3 MySQL データベース

科学技術の進歩により、教室のプロジェクターには仮想映像技術が、デジタルカメラには光電検出技術が使われるなど、日常生活に多くの利便性がもたらされており、例えばスーパーマーケットの商品の入出庫記録には情報倉庫が必要です。この情報倉庫はデータベースであり、今回のペット譲渡システムにもこの技術のサポートが必要です。

複数のユーザーからのアクセスを受け付けるためにMySQLというソフトウェアが使われており、その中にArchiveなどが存在します。データを分類してそれぞれテーブルに保存するという特殊な操作により、データ管理システム自体の速度が向上し、データベースを柔軟に利用できるようになります。MySQL のコードは公開されており、他の人が再度コンパイルしてアップグレードすることができます。この機能は、適切なソフトウェアと組み合わせることで、ユーザーのコストを削減し、優れた Web サイト システムを形成できます。欠点はありますが、あらゆる面でユーザーの主流のアプリケーションオブジェクトです。

2.4  B/S構造

B/S構造(ブラウザ/サーバー、ブラウザ/サーバーモード)は、WEBの台頭以降のネットワーク構造形態であり、WEBブラウザはクライアント上の最も重要なアプリケーションソフトウェアです。このモデルは、クライアントを統合し、システム機能実装のコア部分をサーバーに集中させることで、システムの開発、保守、使用を簡素化します。Chrome、Safari、Microsoft Edge、Netscape Navigator、Internet Explorer などのブラウザをクライアントにインストールし、SQL Server、Oracle、MYSQL、その他のデータベースをサーバーにインストールするだけです。ブラウザは、Web サーバーを通じてデータベースと対話します。

2.5 SSM フレームワークの概要

SSM (Spring+SpringMVC+MyBatis) フレームワーク セットは、2 つのオープン ソース フレームワーク Spring と MyBatis によって統合されています (SpringMVC は Spring の一部です)。比較的単純なデータ ソースを使用する Web プロジェクトのフレームワークとしてよく使用されます。

1.1 春

Spring は、プロジェクト全体で Bean を組み立てる大きな工場のようなもので、構成ファイルで、特定のパラメーターの使用を指定して、エンティティ クラスのコンストラクター メソッドを呼び出し、オブジェクトをインスタンス化できます。プロジェクトにおける接着剤とも言えます。

Spring の核となるアイデアは IoC (Inversion of Control) です。これは、プログラマがオブジェクトを明示的に「新規」にする必要がなくなり、Spring フレームワークにすべてを任せることを意味します。

1.2 SpringMVC

SpringMVC は、プロジェクト内のユーザー リクエストをインターセプトします。そのコア サーブレットである DispatcherServlet は、仲介またはフロント デスクの役割を引き受け、HandlerMapping を通じてユーザー リクエストをコントローラーに照合します。コントローラーは、リクエストに応じて実行される特定の操作です。SpringMVC は、SSH フレームワークの Struts に相当します。

1.3 アパートメント

Mybatis は jdbc のカプセル化であり、データベースの基礎となる操作を透過的にします。mybatis の操作は sqlSessionFactory インスタンスを中心に行われます。Mybatis は、構成ファイルを通じて各エンティティ クラスの Mapper ファイルに関連付けられており、Mapper ファイルには、各クラスに必要な SQL ステートメントのデータベースへのマッピングが設定されています。データベースと対話するたびに、sqlSessionFactory を通じて sqlSession を取得し、sql コマンドを実行します。

ページがコントローラーにリクエストを送信し、コントローラーがビジネス層の処理ロジックを呼び出し、ロジック層がリクエストを永続層に送信し、永続層がデータベースと対話して、結果をビジネス層に返します。処理ロジックをコントローラーに送信し、コントローラーはビューを呼び出してデータを表示します。

2.6  Vue.jsの主な機能

Vue.js は、ユーザー インターフェイスを構築するための進歩的なフレームワークです。他の重量級フレームワークとは異なり、Vue はボトムアップの増分開発設計を採用しています。Vue のコア ライブラリはビュー レイヤーのみに焦点を当てており、学習や他のライブラリや既存のプロジェクトとの統合が非常に簡単です。一方、Vue は、Vue エコシステムによってサポートされる単一ファイルのコンポーネントとライブラリを使用して開発された複雑な単一ページ アプリケーションを駆動する能力を十分に備えています。

Vue.js の目標は、可能な限り単純な API を通じて応答性の高いデータ バインディングと合成ビュー コンポーネントを実装することです。

Vue.js 自体はフル機能を備えたフレームワークではなく、ビュー層のみに焦点を当てています。したがって、学習が非常に簡単で、他のライブラリや既存のプロジェクトとの統合も非常に簡単です。一方、Vue.js を関連ツールやサポート ライブラリと併用すると、複雑なシングルページ アプリケーションを強化することもできます。

第 3 章 システム分析

3.1 実現可能性の分析

        3.1.1 法的実現可能性の分析

ソフトウェアの開発は法律に違反しますか? これには、ソフトウェアやシステムをリリースできるかどうかの問題が含まれます。法律に違反した場合は、法律によって罰せられます。よくある法的問題はソフトウェアの盗用で、他人のソフトウェアをコピーした場合は厳しく罰せられます。

        3.1.2 技術的実現可能性分析

長年の発展を経て、ソフトウェア産業は現在大規模化し、ソフトウェア開発に携わる専門家が数え切れないほど存在し、ソフトウェア産業の重要性は国民経済の発展に影響を与え、促進する中核的な位置にまで高まっています。このシステムのベースとなっているアーキテクチャは現在非常に成熟しており、実装が難しい技術的な問題はありません。

        3.1.3 経済的実現可能性分析

ソフトウェアの開発に必要な時間、人件費、材料費、開発完了後の利益、投資収益率の観点からソフトウェアに必要な機能が現在の経済状況で実現できるかどうかなど、すべてが実際の要件に沿ったものであること。したがって、ペットの引き取りシステムは経済的に実現可能かつ実用的であり、管理コストを節約できます。

3.2 機能要件の分析

ペット養子縁組システムは、主にペットの救助と養子縁組のサービスをさらに向上させることを目的としており、ユーザー情報、ペット情報ペットの養子縁組などに便利な仕組みを提供します。このシステムには、管理者と登録ユーザーという複数の種類のユーザーがいます。以下では、このシステムによって実現される機能を、二人のユーザーの視点から紹介していきます。

ユーザー:

登録: まずユーザー名とメールアドレスが存在するかどうかを確認します。存在しない場合は、ユーザーが入力したパスワードを MD5 で暗号化して登録できます。登録が成功すると、登録が成功したことを示すメッセージが表示され、ユーザー情報が保存されますデータベースに。

ログイン:ペット譲渡システムを使用する前に、ユーザーは個人アカウントにログインする必要があります。

ペット情報:オンラインでペット情報を閲覧できます。

養子縁組フィードバック: ユーザーはペットを養子にした後の状況についてフィードバックを投稿できます

管理者:

ユーザー管理: ユーザーのニックネーム、ユーザー名情報ユーザー アカウント情報などのユーザー登録を管理します

ペット情報管理:ペット情報を公開・管理します。

ペット情報管理:ペット情報の維持管理を行います。

ショッピング管理: ショッピング モール、カテゴリ リスト、注文リストを管理します。

養子縁組フィードバック管理: ペットの養子縁組後のフィードバック情報を管理します。

3.3 非機能要件の分析

システムには、パフォーマンス要件、ホストできる最大ユーザー数、安定性、使いやすさなど、機能以外の要件が多数あります。このシステム分析では、人が利用するシステムであるため、ユーザーの視点やユーザーエクスペリエンスを十分に考慮した、分かりやすさ、使いやすさ、操作しやすさを考慮したシステム分析を行っています。 。

3.4 ユースケース分析

1. 一般ユーザーは主にペットの問い合わせ、ショッピングモール、里親募集のフィードバックなどに利用しており、下図は一般ユーザーのユースケースを示しています。

図 3-1 一般的なユーザーの使用例図

2. 管理者は主に人事管理、ペット情報管理、ペット情報管理買い物管理を担当しており、管理者のユースケース図を次の図に示します。

図 3-2 管理者の使用例図

3.5 ビジネスプロセス分析

システム業務フローを以下に示します。

図 3-3 システム業務フロー図

ビジネス プロセス ダイアグラム (TFD) は、いくつかの特定のシンボルを通じてビジネス プロセス プロセスを記述し、ビジネス プロセス内の各処理アクティビティと特定のビジネス部門との関係を強調し、詳細な説明のためにいくつかのモジュールを選択します。このシステムのビジネス全体の中で最も重要なペット情報クエリとショッピングモールの記述に焦点を当て、ユーザーはペット譲渡システムに入った後、さまざまなモジュール情報を閲覧します。さらに、管理者はバックエンド管理に入り、関連する管理メソッドを実装します。ペットの養子縁組モジュールを作成し、解決後に顧客にフィードバック メカニズムを提供します。

3.6 データプロセス分析

以下はシステムの最上位の外部エンティティにはユーザーと管理者が含まれ、それぞれシステムにデータを入力して出力されるデータを取得します 

   図 3-4システムのトップレベルのデータ フロー図

次の図は、システムの基礎となるデータ フロー図を示しています

図 3-5システムの基礎となるデータフロー図

ペット養子縁組システムの基礎となるデータ フロー図は、主にデータ フロー、データ キャリア、データ処理、およびシステムの基礎となるモジュールの外部エンティティの特定の相互作用を記述します。このシステムは、ユーザー管理、ペット情報、養子縁組フィードバックおよびその他のモジュールに関する管理者と一般ユーザーの間のデータ対話です

第4章 システム設計

4.1 システムアーキテクチャ設計

システムのアーキテクチャ設計は主にWeb層、ビジネス層、モデル層の3層に分かれます。Web レイヤーにはビュー レイヤーとコントローラー レイヤーも含まれ、モデル レイヤーにはメタデータ拡張レイヤーとデータ アクセス レイヤーが含まれます。

図 4-1 システム構成図

4.2 システムの機能構成

システムを「何をするか」から「どうするか」まで実装するために、システム設計原則に基づいて、システムの機能をコーディング実装に適した機能に分割します。上図のシステム アーキテクチャ設計に基づいて、標準化されたシステムの機能構造図が作成され、システム実装コーディングの準備が整います。

システムの機能構成図を次の図に示します。

図 4-2 システムの機能構成図

4.3 機能モジュールの設計

ユーザー管理はすべてのユーザーと管理者が対象です。未登録のユーザーは、「登録」をクリックして登録ページに移動し、新しいユーザー情報を入力し、カスタム生成されたアカウントを取得すると、登録が完了します。未登録ユーザー登録のアクティビティ図を以下に示します。

図 4-3 未登録ユーザーの登録アクティビティ図

ユーザーは、ログインしてさらに多くの機能を使用できます。まず、ユーザー ログイン インターフェイスに入り、ユーザー アカウントとパスワードを入力します。アカウントとパスワードの情報はバックグラウンドでチェックおよび検証されます。検証が成功すると、ページに直接表示されます。ログインが成功したことを示す、ログインしているユーザーのニックネーム。それ以外の場合は、ユーザーのログイン インターフェイスに戻ります。ユーザーのログインアクティビティ図は次のとおりです。

図 4-4 ユーザーのログイン アクティビティ図

ユーザーがログインすると、お知らせメッセージ、ペット情報、ショッピングモール、個人アカウント、個人コレクション、住所管理、買い物管理、注文管理、ペット情報、里親フィードバックなどの機能ページに入りますユーザー使用機能のアクティビティ図を次の図に示します

図 4-5 ユーザー関数のアクティビティ図

ユーザー機能インターフェイスを使用すると、自分のパスワードを変更できます。パスワード変更画面に入ったら、現在のパスワードを確認し、正常に確認できたら、新しいパスワードを入力します。パスワード変更アクティビティの図を以下に示します。

図 4-6 パスワード変更アクティビティの図

4.4 データベース設計

ペット譲渡システムで使用するデータベースはMySQLであり、この部分はシステム要件と設計に基づいて合理的なデータベースを設計します。このシステムは、将来のシステムクラスタの拡張を考慮しており、データベースは外部キーを使用しません。さらに、外部キーを使用しない場合、データ管理が簡単になり、操作がより便利になり、パフォーマンスが向上します。

        4.4.1 ER図

ER 図は、システム内の各データの属性、各データ間の接続、および各データのタイプを開発者により直観的に伝えます。このモデルを通じて、データベースの設計をより直観的に理解し、徐々に改善することができます。

システム図の設計は下図のとおりです。

図 4-7 システム ER 図

        4.4.2 テーブル構造の設計

本システムは、第3のパラダイムの考え方に基づいて冗長性を極力削減したデータベースを設計しており、利用者登録テーブル、管理者テーブル、ペット情報テーブル、ペット引き取りテーブル等の合計複数のテーブルを備えています。

テーブル access_token (ログインアクセス期間)

シリアルナンバー

名前

データの種類

長さ

小数位

Null値を許可する

主キー

デフォルト値

説明する

1

トークンID

整数

10

0

N

Y

一時的なアクセスバッジID

2

トークン

可変長文字

64

0

Y

N

一時的なアクセスバッジ

3

情報

文章

65535

0

Y

N

4

最大値

整数

10

0

N

N

2

最大寿命: デフォルト 2 時間

5

作成時間

タイムスタンプ

19

0

N

N

CURRENT_TIMESTAMP

作成時間:

6

更新時間

タイムスタンプ

19

0

N

N

CURRENT_TIMESTAMP

更新時間:

7

ユーザーID

整数

10

0

N

N

0

ユーザーID:

テーブルアドレス (配送先住所:)

シリアルナンバー

名前

データの種類

長さ

小数位

Null値を許可する

主キー

デフォルト値

説明する

1

アドレスID

整数

10

0

N

Y

お届け先の住所:

2

名前

可変長文字

32

0

Y

N

名前:

3

電話

可変長文字

13

0

Y

N

携帯電話:

4

郵便番号

可変長文字

8

0

Y

N

郵便番号:

5

住所

可変長文字

255

0

N

N

住所:

6

ユーザーID

中程度の

8

0

N

N

ユーザーID: [0,8388607] ユーザーはその他のユーザー関連データを取得します

7

作成時間

タイムスタンプ

19

0

N

N

CURRENT_TIMESTAMP

作成時間:

8

更新時間

タイムスタンプ

19

0

N

N

CURRENT_TIMESTAMP

更新時間:

9

デフォルト

少し

1

0

N

N

0

不履行判定

テーブル Adopt_フィードバック (採用フィードバック)

シリアルナンバー

名前

データの種類

長さ

小数位

Null値を許可する

主キー

デフォルト値

説明する

1

採用フィードバック_id

整数

10

0

N

Y

採用フィードバック ID

2

タイトル

可変長文字

64

0

Y

N

タイトル

3

ユーザー番号

整数

10

0

Y

N

0

ユーザーID

4

フルネーム

可変長文字

64

0

Y

N

名前

5

フィードバック時間

日付

10

0

Y

N

フィードバック時間

6

フィードバックの詳細

文章

65535

0

Y

N

フィードバックの詳細

7

検査状態

可変長文字

16

0

N

N

未レビュー

承認状況

8

検査_返信

可変長文字

16

0

Y

N

モデレート返信

9

推薦する

整数

10

0

N

N

0

インテリジェントな推奨事項

10

作成時間

日付時刻

19

0

N

N

CURRENT_TIMESTAMP

作成時間

11

更新時間

タイムスタンプ

19

0

N

N

CURRENT_TIMESTAMP

更新時間

表記事(記事:コンテンツ管理システムの記事)

シリアルナンバー

名前

データの種類

長さ

小数位

Null値を許可する

主キー

デフォルト値

説明する

1

記事ID

中程度の

8

0

N

Y

記事ID: [0,8388607]

2

タイトル

可変長文字

125

0

N

Y

Title: [0,125]は記事やHTMLのタイトルタグに使用されます

3

タイプ

可変長文字

64

0

N

N

0

記事分類: [0,1000] は、指定されたタイプの記事を検索するために使用されます

4

ヒット

整数

10

0

N

N

0

クリック数: [0,1000000000] この記事を訪れた人の数

5

賞賛レン

整数

10

0

N

N

0

いいね数

6

作成時間

タイムスタンプ

19

0

N

N

CURRENT_TIMESTAMP

作成時間:

7

更新時間

タイムスタンプ

19

0

N

N

CURRENT_TIMESTAMP

更新時間:

8

ソース

可変長文字

255

0

Y

N

出典: [0,255] 記事の出典

9

URL

可変長文字

255

0

Y

N

ソースアドレス: [0,255] は記事が公開された Web サイトにジャンプするために使用されます

10

鬼ごっこ

可変長文字

255

0

Y

N

タグ: [0,255] は、記事の関連コンテンツをマークするために使用されます。複数のタグはスペースで区切られます。

11

コンテンツ

長文

2147483647

0

Y

N

本文:記事の主な内容

12

画像

可変長文字

255

0

Y

N

表紙絵

13

説明

文章

65535

0

Y

N

記事の説明

テーブルarticle_type(記事分類)

シリアルナンバー

名前

データの種類

長さ

小数位

Null値を許可する

主キー

デフォルト値

説明する

1

タイプID

smallint

5

0

N

Y

カテゴリID: [0,10000]

2

画面

smallint

5

0

N

N

100

表示順序: [0,1000] により、カテゴリが表示される順序が決まります。

3

名前

可変長文字

16

0

N

N

カテゴリ名: [2,16]

4

父親ID

smallint

5

0

N

N

0

親カテゴリID: [0,32767]

5

説明

可変長文字

255

0

Y

N

説明: [0,255] は、この分類の役割を説明します。

6

アイコン

文章

65535

0

Y

N

カテゴリアイコン:

7

URL

可変長文字

255

0

Y

N

外部リンクアドレス:[0,255] このカテゴリから他のサイトに飛ぶ場合はURLに設定してください

8

作成時間

タイムスタンプ

19

0

N

N

CURRENT_TIMESTAMP

作成時間:

9

更新時間

タイムスタンプ

19

0

N

N

CURRENT_TIMESTAMP

更新時間:

テーブル認証 (ユーザー権限管理)

シリアルナンバー

名前

データの種類

長さ

小数位

Null値を許可する

主キー

デフォルト値

説明する

1

auth_id

整数

10

0

N

Y

認可ID:

2

ユーザー・グループ

可変長文字

64

0

Y

N

ユーザー・グループ:

3

mod_name

可変長文字

64

0

Y

N

モジュール名:

4

テーブル名

可変長文字

64

0

Y

N

テーブル名:

5

ページタイトル

可変長文字

255

0

Y

N

ページタイトル:

6

パス

可変長文字

255

0

Y

N

ルーティングパス:

7

位置

可変長文字

32

0

Y

N

位置:

8

モード

可変長文字

32

0

N

N

_空白

ジャンプ方法:

9

追加

タイニーント

3

0

N

N

1

以下を追加することは可能ですか?

10

タイニーント

3

0

N

N

1

削除できますか:

11

セット

タイニーント

3

0

N

N

1

変更できるかどうか:

12

得る

タイニーント

3

0

N

N

1

閲覧することは可能ですか:

13

フィールド追加

文章

65535

0

Y

N

フィールドを追加します。

14

フィールドセット

文章

65535

0

Y

N

フィールドを変更します。

15

フィールド取得

文章

65535

0

Y

N

クエリフィールド:

16

テーブルナビゲーション名

可変長文字

500

0

Y

N

クロステーブル ナビゲーション名:

17

テーブルナビ

可変長文字

500

0

Y

N

テーブル間のナビゲーション:

18

オプション

文章

65535

0

Y

N

構成:

19

作成時間

タイムスタンプ

19

0

N

N

CURRENT_TIMESTAMP

作成時間:

20

更新時間

タイムスタンプ

19

0

N

N

CURRENT_TIMESTAMP

更新時間:

テーブルカート(ショッピングカート)

シリアルナンバー

名前

データの種類

長さ

小数位

Null値を許可する

主キー

デフォルト値

説明する

1

カートID

整数

10

0

N

Y

ショッピングカートID:

2

タイトル

可変長文字

64

0

Y

N

タイトル:

3

画像

可変長文字

255

0

N

N

0

写真:

4

ユーザーID

整数

10

0

N

N

0

ユーザーID:

5

作成時間

タイムスタンプ

19

0

N

N

CURRENT_TIMESTAMP

作成時間:

6

更新時間

タイムスタンプ

19

0

N

N

CURRENT_TIMESTAMP

更新時間:

7

整数

10

0

N

N

0

ステータス: 使用中、期限切れ

8

価格

ダブル

9

2

N

N

0.00

単価:

9

前の価格

ダブル

9

2

N

N

0.00

元値:

10

価格_数

ダブル

11

2

N

N

0.00

合計金額:

11

番号

整数

10

0

N

N

1

量:

12

商品ID

中程度の

8

0

N

N

商品ID: [0,8388607]

13

タイプ

可変長文字

64

0

N

N

未分類

カテゴリ:

14

説明

可変長文字

255

0

Y

N

説明: 製品仕様の説明には [0,255] が使用されます

テーブル収集 (コレクション)

シリアルナンバー

名前

データの種類

長さ

小数位

Null値を許可する

主キー

デフォルト値

説明する

1

収集ID

整数

10

0

N

Y

コレクションID:

2

ユーザーID

整数

10

0

N

N

0

コレクターID:

3

ソーステーブル

可変長文字

255

0

Y

N

ソーステーブル:

4

ソースフィールド

可変長文字

255

0

Y

N

ソースフィールド:

5

ソースID

整数

10

0

N

N

0

ソースID:

6

タイトル

可変長文字

255

0

Y

N

タイトル:

7

画像

可変長文字

255

0

Y

N

カバー:

8

作成時間

タイムスタンプ

19

0

N

N

CURRENT_TIMESTAMP

作成時間:

9

更新時間

タイムスタンプ

19

0

N

N

CURRENT_TIMESTAMP

更新時間:

テーブルコメント(コメント)

シリアルナンバー

名前

データの種類

長さ

小数位

Null値を許可する

主キー

デフォルト値

説明する

1

コメントID

整数

10

0

N

Y

コメントID:

2

ユーザーID

整数

10

0

N

N

0

コメント投稿者ID:

3

Reply_to_id

整数

10

0

N

N

0

返信コメントID: 空は0

4

コンテンツ

長文

2147483647

0

Y

N

コンテンツ:

5

ニックネーム

可変長文字

255

0

Y

N

ニックネーム:

6

アバター

可変長文字

255

0

Y

N

アバターアドレス: [0,255]

7

作成時間

タイムスタンプ

19

0

N

N

CURRENT_TIMESTAMP

作成時間:

8

更新時間

タイムスタンプ

19

0

N

N

CURRENT_TIMESTAMP

更新時間:

9

ソーステーブル

可変長文字

255

0

Y

N

ソーステーブル:

10

ソースフィールド

可変長文字

255

0

Y

N

ソースフィールド:

11

ソースID

整数

10

0

N

N

0

ソースID:

テーブルグッズ(商品情報)

シリアルナンバー

名前

データの種類

長さ

小数位

Null値を許可する

主キー

デフォルト値

説明する

1

商品ID

中程度の

8

0

N

Y

商品ID: [0,8388607]

2

タイトル

可変長文字

125

0

Y

N

タイトル: [0,125] は、商品や HTML の <title> タグで使用されます。

3

画像

文章

65535

0

Y

N

カバー画像:商品一覧ページでの表示に使用されます

4

説明

可変長文字

255

0

Y

N

説明: 製品仕様の説明には [0,255] が使用されます

5

前の価格

ダブル

8

2

N

N

0.00

原价:[1]

6

price

double

8

2

N

N

0.00

卖价:[1]

7

sales

int

10

0

N

N

0

销量:[0,1000000000]

8

inventory

int

10

0

N

N

0

商品库存

9

type

varchar

64

0

N

N

商品分类:

10

hits

int

10

0

N

N

0

点击量:[0,1000000000]访问这篇产品的人次

11

content

longtext

2147483647

0

Y

N

正文:产品的主体内容

12

img_1

text

65535

0

Y

N

主图1:

13

img_2

text

65535

0

Y

N

主图2:

14

img_3

text

65535

0

Y

N

主图3:

15

img_4

text

65535

0

Y

N

主图4:

16

img_5

text

65535

0

Y

N

主图5:

17

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

18

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

19

customize_field

text

65535

0

Y

N

自定义字段

20

source_table

varchar

255

0

Y

N

来源表:

21

source_field

varchar

255

0

Y

N

来源字段:

22

source_id

int

10

0

N

N

0

来源ID:

23

user_id

int

10

0

Y

N

0

添加人

表goods_type (商品类型)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

type_id

int

10

0

N

Y

商品分类ID:

2

father_id

smallint

5

0

N

N

0

上级分类ID:[0,32767]

3

name

varchar

255

0

Y

N

商品名称:

4

desc

varchar

255

0

Y

N

描述:

5

icon

varchar

255

0

Y

N

图标:

6

source_table

varchar

255

0

Y

N

来源表:

7

source_field

varchar

255

0

Y

N

来源字段:

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表hits (用户点击)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

hits_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

表notice (公告)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

notice_id

mediumint

8

0

N

Y

公告id:

2

title

varchar

125

0

N

N

标题:

3

content

longtext

2147483647

0

Y

N

正文:

4

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

5

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表order (订单)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

order_id

int

10

0

N

Y

订单ID:

2

order_number

varchar

64

0

Y

N

订单号:

3

goods_id

mediumint

8

0

N

N

商品id:[0,8388607]

4

title

varchar

32

0

Y

N

商品标题:

5

img

varchar

255

0

Y

N

商品图片:

6

price

double

10

2

N

N

0.00

价格:

7

price_ago

double

10

2

N

N

0.00

原价:

8

num

int

10

0

N

N

1

数量:

9

price_count

double

8

2

N

N

0.00

总价:

10

norms

varchar

255

0

Y

N

规格:

11

type

varchar

64

0

N

N

未分类

商品分类:

12

contact_name

varchar

32

0

Y

N

联系人姓名:

13

contact_email

varchar

125

0

Y

N

联系人邮箱:

14

contact_phone

varchar

11

0

Y

N

联系人手机:

15

contact_address

varchar

255

0

Y

N

收件地址:

16

postal_code

varchar

9

0

Y

N

邮政编码:

17

user_id

int

10

0

N

N

0

买家ID:

18

merchant_id

mediumint

8

0

N

N

0

商家ID:

19

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

20

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

21

description

varchar

255

0

Y

N

描述:[0,255]用于产品规格描述

22

state

varchar

16

0

N

N

待付款

订单状态:待付款,待发货,待签收,已签收,待退款,已退款,已拒绝,已完成

表pet_information (宠物信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

pet_information_id

int

10

0

N

Y

宠物信息ID

2

pet_name

varchar

64

0

Y

N

宠物姓名

3

picture

varchar

255

0

Y

N

图片

4

pet_category

varchar

64

0

Y

N

宠物种类

5

pet_age

int

10

0

Y

N

0

宠物年龄

6

pet_gender

varchar

64

0

Y

N

宠物性别

7

vaccine_situation

varchar

64

0

Y

N

疫苗情况

8

adoption

varchar

64

0

Y

N

领养情况

9

detailed_description

longtext

2147483647

0

Y

N

详情描述

10

hits

int

10

0

N

N

0

点击数

11

praise_len

int

10

0

N

N

0

点赞数

12

recommend

int

10

0

N

N

0

智能推荐

13

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

14

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表praise (点赞)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

praise_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

status

bit

1

0

N

N

1

点赞状态:1为点赞,0已取消

表registered_users (注册用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

registered_users_id

int

10

0

N

Y

注册用户ID

2

user_number

varchar

64

0

N

N

用户编号

3

full_name

varchar

64

0

Y

N

姓名

4

gender

varchar

64

0

Y

N

性别

5

examine_state

varchar

16

0

N

N

已通过

审核状态

6

recommend

int

10

0

N

N

0

智能推荐

7

user_id

int

10

0

N

N

0

用户ID

8

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表shopping_mall (购物商城)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

shopping_mall_id

int

10

0

N

Y

购物商城ID

2

brand

varchar

64

0

Y

N

品牌

3

specifications

varchar

64

0

Y

N

规格

4

recommend

int

10

0

N

N

0

智能推荐

5

cart_title

varchar

125

0

Y

N

标题:[0,125]用于产品html的标签中

6

cart_img

text

65535

0

Y

N

封面图:用于显示于产品列表页

7

cart_description

varchar

255

0

Y

N

描述:[0,255]用于产品规格描述

8

cart_price_ago

double

8

2

N

N

0.00

原价:[1]

9

cart_price

double

8

2

N

N

0.00

卖价:[1]

10

cart_inventory

int

10

0

N

N

0

商品库存

11

cart_type

varchar

64

0

N

N

未分类

商品分类:

12

cart_content

longtext

2147483647

0

Y

N

正文:产品的主体内容

13

cart_img_1

text

65535

0

Y

N

主图1:

14

cart_img_2

text

65535

0

Y

N

主图2:

15

cart_img_3

text

65535

0

Y

N

主图3:

16

cart_img_4

text

65535

0

Y

N

主图4:

17

cart_img_5

text

65535

0

Y

N

主图5:

18

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

19

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表slides (轮播图)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

slides_id

int

10

0

N

Y

轮播图ID:

2

title

varchar

64

0

Y

N

标题:

3

content

varchar

255

0

Y

N

内容:

4

url

varchar

255

0

Y

N

链接:

5

img

varchar

255

0

Y

N

轮播图:

6

hits

int

10

0

N

N

0

点击量:

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表upload (文件上传)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

upload_id

int

10

0

N

Y

上传ID

2

name

varchar

64

0

Y

N

文件名

3

path

varchar

255

0

Y

N

访问路径

4

file

varchar

255

0

Y

N

文件路径

5

display

varchar

255

0

Y

N

显示顺序

6

father_id

int

10

0

Y

N

0

父级ID

7

dir

varchar

255

0

Y

N

文件夹

8

type

varchar

32

0

Y

N

文件类型

表user (用户账户:用于保存用户登录信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_id

mediumint

8

0

N

Y

用户ID:[0,8388607]用户获取其他与用户相关的数据

2

state

smallint

5

0

N

N

1

账户状态:[0,10](1可用|2异常|3已冻结|4已注销)

3

user_group

varchar

32

0

Y

N

所在用户组:[0,32767]决定用户身份和权限

4

login_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

上次登录时间:

5

phone

varchar

11

0

Y

N

手机号码:[0,11]用户的手机号码,用于找回密码时或登录时

6

phone_state

smallint

5

0

N

N

0

手机认证:[0,1](0未认证|1审核中|2已认证)

7

username

varchar

16

0

N

N

用户名:[0,16]用户登录时所用的账户名称

8

nickname

varchar

16

0

Y

N

昵称:[0,16]

9

password

varchar

64

0

N

N

密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成

10

email

varchar

64

0

Y

N

邮箱:[0,64]用户的邮箱,用于找回密码时或登录时

11

email_state

smallint

5

0

N

N

0

邮箱认证:[0,1](0未认证|1审核中|2已认证)

12

avatar

varchar

255

0

Y

N

头像地址:[0,255]

13

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

表user_group (用户组:用于用户前端身份和鉴权)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

group_id

mediumint

8

0

N

Y

用户组ID:[0,8388607]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]

3

name

varchar

16

0

N

N

名称:[0,16]

4

description

varchar

255

0

Y

N

描述:[0,255]描述该用户组的特点或权限范围

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

register

smallint

5

0

Y

N

0

注册位置:

9

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

第5章 系统实现

5.1 开发工具

系统中应用的开发工具总结如下表所示。

表5-1开发工具

名称

工具

版本

操作系统

IDE(Integrated Development Environment)

Windows

Eclipse

7/8/10

2017

服务器

Tomcat

9.10.7

JDK(Java Development Kit)

JDK

Java SE 8.0 (1.8.0)

数据库

浏览器

界面工具

MySQL

谷歌

Photoshop

5.7

6.0

2016

5.2 注册模块

未注册用户在用户注册界面uerRegister.jsp,输入新用户信息,点击注册后,新用户信息由界面传入控制层userAction,调用addUser(user)方法,通过userDAOImp向数据库用户表插入用户信息,由于用户账号是自动生成的,若成功则反馈注册成功,并提示新用户的用户账号;若失败则回到登录界面,并显示登录失败。

注册界面如下所示。

图5-1注册界面

用户注册关键代码如下所示。

/**

     * 注册

     * @return

     */

    @PostMapping("register")

    public Map<String, Object> signUp(HttpServletRequest request) throws IOException {

        // 查询用户

        Map<String, String> query = new HashMap<>();

        Map<String,Object> map = service.readBody(request.getReader());

        query.put("username",String.valueOf(map.get("username")));

        List list = service.selectBaseList(service.select(query, new HashMap<>()));

        if (list.size()>0){

            return error(30000, "用户已存在");

        }

        map.put("password",service.encryption(String.valueOf(map.get("password"))));

        service.insert(map);

        return success(1);

}

    public Map<String,Object> readBody(BufferedReader reader){

        BufferedReader br = null;

        StringBuilder sb = new StringBuilder("");

        try{

            br = reader;

            String str;

            while ((str = br.readLine()) != null){

                sb.append(str);

            }

            br.close();

            String json = sb.toString();

            return JSONObject.parseObject(json, Map.class);

        }catch (IOException e){

            e.printStackTrace();

        }finally{

            if (null != br){

                try{

                    br.close();

                }catch (IOException e){

                    e.printStackTrace();

                }

            }

        }

        return null;

    }

    public void insert(Map<String,Object> body){

        E entity = JSON.parseObject(JSON.toJSONString(body),eClass);

        baseMapper.insert(entity);

        log.info("[{}] - 插入操作:{}",entity);

}

5.3 登录模块

用户在首页点击登录,进入用户登录界面uerLogin.jsp,输入用户账号和密码,点击登录,用户账号和密码信息由界面传入控制层userAction,调用userLogin(user)方法,通过userDAOImp向数据库用户表搜索该用户账号与密码,将最终结果反馈到前端。若成功则回到首页;用户成功登录,若失败则回到登录界面,并显示登录失败。

登录界面如下所示。

图5-2登录界面

登录界面关键代码如下所示。

/**

     * 登录

     * @param data

     * @param httpServletRequest

     * @return

     */

    @PostMapping("login")

    public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {

        log.info("[执行登录接口]");

        String username = data.get("username");

        String email = data.get("email");

        String phone = data.get("phone");

        String password = data.get("password");

        List resultList = null;

        Map<String, String> map = new HashMap<>();

        if(username != null && "".equals(username) == false){

            map.put("username", username);

            resultList = service.select(map, new HashMap<>()).getResultList();

        }

        else if(email != null && "".equals(email) == false){

            map.put("email", email);

            resultList = service.select(map, new HashMap<>()).getResultList();

        }

        else if(phone != null && "".equals(phone) == false){

            map.put("phone", phone);

            resultList = service.select(map, new HashMap<>()).getResultList();

        }else{

            return error(30000, "账号或密码不能为空");

        }

        if (resultList == null || password == null) {

            return error(30000, "账号或密码不能为空");

        }

        //判断是否有这个用户

        if (resultList.size()<=0){

            return error(30000,"用户不存在");

        }

        User byUsername = (User) resultList.get(0);

        Map<String, String> groupMap = new HashMap<>();

        groupMap.put("name",byUsername.getUserGroup());

        List groupList = userGroupService.select(groupMap, new HashMap<>()).getResultList();

        if (groupList.size()<1){

            return error(30000,"用户组不存在");

        }

        UserGroup userGroup = (UserGroup) groupList.get(0);

        //查询用户审核状态

        if (!StringUtils.isEmpty(userGroup.getSourceTable())){

            String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();

            String res = String.valueOf(service.runCountSql(sql).getSingleResult());

            if (res==null){

                return error(30000,"用户不存在");

            }

            if (!res.equals("已通过")){

                return error(30000,"该用户审核未通过");

            }

        }

        //查询用户状态

        if (byUsername.getState()!=1){

            return error(30000,"用户非可用状态,不能登录");

        }

        String md5password = service.encryption(password);

        if (byUsername.getPassword().equals(md5password)) {

            // 存储Token到数据库

            AccessToken accessToken = new AccessToken();

            accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));

            accessToken.setUser_id(byUsername.getUserId());

            tokenService.save(accessToken);

            // 返回用户信息

            JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));

            user.put("token", accessToken.getToken());

            JSONObject ret = new JSONObject();

            ret.put("obj",user);

            return success(ret);

        } else {

            return error(30000, "账号或密码不正确");

        }

}

5.4 用户模块

        5.4.1 个人资料模块

登录用户在首页点击进入用户中心userCenter.jsp,再点击修改个人信息按钮进入userChangeInfo.jsp界面,系统根据session中存储的目前登录的用户的账号,向控制层userAction发送请求,搜索当前用户信息,userAction向userDAOImp调用queryByUserId(user),向数据库的用户表搜索当前用户信息并将用户信息以对象的形式层层返回到userChangeInfo.jsp界面,显示出当前用户的个人信息。

若用户要对个人信息进行修改,则通过修改当前信息之后点击确认,向控制层userAction发送更改后的用户信息,调用changeUser(user)方法,通过userDAOImp向数据库用户表更新用户信息,若成功则反馈注册成功,则返回的userChangeInfo.jsp界面被更改成功;若失败则显示修改失败。

        5.4.2 宠物资讯模块

用户在登录状态下浏览宠物资讯时,点击加入宠物资讯信息后前台发起请求,将对应的宠物shuliang、id参数信息从前台传递GoumaiController类里,匹配到add()方法,add()方法调用GoumaiServiceImpl类的add()方法。

宠物资讯界面如下所示。

图5-3宠物资讯界面

        5.4.3 购物商城模块

用户在登录状态下点击购物商城页面可将进行购物通过筛选、排序等操作进行查看。

购物商城界面如下所示。

图5-4购物商城界面

        5.4.4 地址管理模块

用户在登录状态下点击地址管理页面通过查看收货人、手机号等信息进行修改等操作。

修改收货地址界面如下所示。

图5-5修改收货地址界面

        5.4.5 订单管理模块

用户在登录状态下点击订单管理页面通过订单状态、排序等操作进行查看我的订单。

订单管理界面如下所示。

图5-6订单管理界面

        5.4.6 宠物信息模块

用户在登录状态下点击宠物信息页面通过关键字搜索、排序、宠物性别等操作进行查看宠物信息。

宠物信息界面如下所示。

图5-7宠物信息界面

        5.4.7 领养反馈模块

用户在登录状态下点击领养反馈页面通过填写标题、姓名、用户编号、反馈时间、反馈详情来发布领养反馈信息。

填写领养反馈界面如下所示。

图5-8填写领养反馈界面

5.5 管理员模块

        5.5.1 网站管理模块

管理员在登录状态下点击网站管理页面通过查看轮播图、公告消息进行相应的操作。

公告消息管理界面图如下所示。

图5-9公告栏管理界面

        5.5.2 人员管理模块

人员管理,管理员在此页面可以查看用户名、用户编号、姓名、性别等信息,并可根据需要进行删除、添加等操作

人员管理界面如下所示。

图5-10人员管理界面

        5.5.3 内容管理模块

宠物资讯,管理员在此页面可以通过标题、封面图、标签等查看宠物信息,进行重置、删除、添加、查看评论等操作

宠物资讯界面如下图所示。

图5-11宠物资讯界面

        5.5.4 购物管理模块

订单列表在此页面可以查看商品名称、订单号、商品图片、价格、订单状态等信息,进行查询、重置、删除等操作。

订单列表界面如下图所示。

图5-12订单列表界面图

        5.5.5 模块管理

宠物信息在此页面可以查看宠物姓名、图片、宠物种类、宠物年龄、领养情况等信息,进行查询、重置、删除、添加等操作。

宠物信息界面如下图所示。

图5-13宠物信息界面图

宠物信息的添加界面如下图所示。

图5-14宠物信息添加界面图

领养反馈在此页面可以查看标题、用户编号、姓名、反馈时间、反馈详情等信息,进行查询、重置、删除、添加等操作。

领养反馈界面如下图所示。

图5-15领养反馈界面图

        5.5.6 个人管理模块

管理员选择个人管理的修改本人密码。通过密码框输入现密码和2次新密码,如果现密码错误,则提示修改失败。如果2次新密码不一致,则提示修改失败。都没问题的话,系统提示修改成功,并返回登录界面。

第6章 系统测试

6.1 测试概述

软件测试是软件开发完成后必须经过的一道程序,它在软件开发过程中地位十分重要,需要由专业的测试工程师来对软件进行各方面的测试,大到功能模块测试,小到代码的单元测试,这对测试工程师来说需要有足够的耐心和专业的测试方案,软件测试归根结底就是对软件的结构和功能的综合测评,需要做到结构稳定和功能正确,二者兼顾。软件测试也叫寻找系统bug的过程,世界上没有完美无缺、不存在bug的软件,只能将软件的bug降到最低最小,来追求极致。

6.2 测试过程

        6.2.1 登录测试

登录测试是系统最开始就要进行,测试用户能否登录,才能完成后续的功能操作。

登录测试用例表如下所示。

表6-1登录测试

用例编号

YL001

程序版本

1.00

功能名称

使用者登录测试

编制人

李铁蛋

功能描述

根据用户的登录情况测试

用例目的

测试用户登录情况是否正确

测试项

测试数据

测试结果

预期结果

用户名

为空

请输入用户名

请输入用户名

密码

为空

请输入密码

请输入密码

用户密码组合

用户名:klouse 密码 klouses

用户与密码不匹配

用户与密码不匹配

用户密码组合

用户名 : klouse 密码

klouse

进入系统

正确的用户名和密码

登录系统

        6.2.2 信息录入测试

管理员在发布信息页面,通过按照预先格式发布信息,如果因为输入时候缺少相关内容,就不能发布成功,且有相应错误提示

信息录入发布测试用例表如下所示。

表6-1信息录入发布测试

用例编号

YL002

程序版本

1.00

功能名称

信息发布测试

编制人

李铁蛋

功能描述

对使用者发布或者录入信息进行测试,判断其功能是否达到预期的要求

用例目的

对系统使用者录入发布信息进行原型测试。

测试项

测试数据

测试结果

预期结果

属性1

为空

请输入属性1对应的数据

请输入属性1对应的数据

属性2

为空

请输入属性2对应的数据

请输入属性2对应的数据

属性3

为空

请输入属性3对应的数据

请输入属性3对应的数据

全部输入

数据均填入

录入发布成功

录入发布成功

        6.2.3 信息更新测试

管理员在更新信息页面,通过按照预先格式更新信息,如果因为输入时候缺少相关内容或者更新的数据不符合当前规范的话,就不能更新成功,且有相应错误提示

信息更新测试用例表如下所示。

表6-1信息更新测试

用例编号

YL003

程序版本

1.00

功能名称

信息更新测试

编制人

李铁蛋

功能描述

对使用者更新信息进行测试,判断其功能是否达到预期的要求

用例目的

对系统使用者更新信息进行原型测试。

测试项

测试数据

测试结果

预期结果

属性1

编号:321

编号更新成功

编号更新成功

属性2

名称:名称1

名称更新成功

名称更新成功

属性3

内容:内容1234内容

内容更新成功

内容更新成功

全部输入

数据均未更改

更新成功

更新成功

        6.2.4 信息删除测试

管理员在信息页面,通过点击数据删除按钮来删除该条数据,如果该数据和其他数据有关联,则提示是否确定删除。

信息删除测试用例表如下所示。

表6-1信息删除测试

用例编号

YL004

程序版本

1.00

功能名称

信息删除测试

编制人

李铁蛋

功能描述

对使用者删除信息进行测试,判断其功能是否达到预期的要求

用例目的

对系统使用者删除信息进行原型测试。

测试项

测试数据

测试结果

预期结果

数据1

无任何关联的数据1

数据删除成功

数据删除成功

数据2

和其他数据有关联的数据2

请确认是否删除

请确认是否删除

6.3 测试结果

在经过之前的所有的工作之后,通过对软件的测试方法、测试原则还有典型的测试用例进行全面的、深入的介绍。经过对系统的全面测试,系统目前所具有的所有功能均成功的实现并且通过了测试,整个系统实现了基于 Java 开发的期望。

第7章 总结与展望

7.1 总结

宠物领养系统采用SSM框架开发,该系统非常完美的集优点于一身,成熟、强大、易理解易使用,通过使用这个结构,降低了开发的难度。本系统实现了基于SSM宠物领养系统,将数据操作维护的过程转化成电脑操作流程,具体实现了对系统人员管理、宠物信息数据维护、领养反馈数据维护,并提供查询统计功能来对宠物领养系统的相关数据进行统计分析,让使用者能更清晰的掌握运营情况,帮助使用者进行数据操作维护,简化工作流程,提高工作效率和盈利。

7.2 展望

目前完成的宠物领养系统,还有许多有待改进的地方。一个是功能上的改进,用户理应可以修改自己的相关信息,故应增设个人中心功能;另外,系统如果能提供更多的功能就会使得系统更加丰富和多样化,比如数据当前分析和未来预测等。第二个是技术上的改进,由于对开发框架不太熟悉,权限管理这部分,本系统采用一个Java页面来规定好导航栏,即跳转的页面,这相对比较不灵活,如果将URL路径记录到数据库并实现增删查改会比较好;另外就是对EasyUI的使用还不够熟练,视觉效果和界面观感有待提升,希望日后能对这个系统有所改进。

参考文献

[1]李亚君. 基于SSM框架的B2C电子商城系统的设计与实现[D].合肥工业大学,2022.

[2]焦宇,李民,王欢,余开朝. 基于MySQL性能调优的推荐系统优化设计[J]. 软件导刊,2022,21(09):108-112.

[3]欧阳桂秀. 基于Java和MySQL的数据库管理系统的设计与实现[J]. 信息记录材料,2022,23(09):240-242.

[4]杨卓凡. 基于MySQL不同存储引擎下数据存储效率研究[J]. 电脑知识与技术,2022,18(21):18-20.

[5]王景. 基于MySQL的数据库查询性能优化技术研究[J]. 电脑与电信,2022,(06):90-93.

[6]He Xinbin,Bai Yongbin,Yue Lisen,Wang Haixiao,Liu Yi. Design and Implementation of Information System Based on Java Technology Platform[J]. Journal of Physics: Conference Series,2021,2033(1).

[7]金馨. 基于SSM的宠物店线上运营系统的设计与实现[D].首都经济贸易大学,2021.

[8]周粉妹,吴仁平,钱荣华,陈思. 基于SSM的宠物领养网站设计[J]. 扬州职业大学学报,2021,25(01):32-35.

[9]李艳杰. MySQL数据库下存储过程的设计与应用[J]. 信息技术与信息化,2021,(01):96-97.

[10]王亚文,赵翠. 基于SSM框架的社区宠物信息管理系统设计与分析[J]. 电脑编程技巧与维护,2021,(01):103-105.

[11]吴文洋,刘世宇. 基于B/S架构宠物领养管理系统设计[J]. 软件,2020,41(11):85-87.

[12]. Design and Implementation of ERP System Based on SSM Framework[J]. ,2020,440(5).

[13]. Design and Implementation of Loan Management System using ISI Server, PhP and MySql[J]. International Journal of Recent Technology and Engineering,2019,8(4).

[14]Ping Wanxin,Chen Yuankun,Hou Xiaoyan. Design of Campus Bicycle Rental Management System Based on SSM Framework[J]. Journal of Physics: Conference Series,2019,1314.

[15]ウー・ジホン、ワン・ジュンメイ、シー・ドンリン。SSMフレームワークに基づく大学国際協力室プラットフォームの設計と研究[A]。吉林省科学技術(S&T)イノベーションセンター、水資源の物理シミュレーションと安全保障、電力工学、風力発電設備とエネルギー変換の協力イノベーションセンター、湖南省工学院、サンクトペテルブルク工科大学 ジョンズ大学、湖南省モノのインターネット協会。2019 年仮想現実とインテリジェント システムに関する国際会議 (ICVRIS 2019) の会議録 ICVRIS 2019 ボリューム I[C]。吉林省科学技術 (S&T) 物理シミュレーションと水資源と電気のセキュリティのためのイノベーション センター電力工学、風力発電設備とエネルギー変換の協同イノベーションセンター、湖南工学院、セント・ルイス大学 ジョンズ大学、湖南省モノのインターネット協会: 第三届番号製造造与自国化国际会议(ICDMA2012会务组)、2019:229-232。

[16]Yun Quan. Vue.js および MySQL に基づく E-commerce プラットフォームの設計と実装[A]. Wuhan Zhicheng Times Culture Development Co., Ltd.. 第 3 回コンピュータ エンジニアリング、情報科学、応用に関する国際会議の議事録テクノロジー(ICCIA 2019)[C].武漢志城時代文化発展有限公司: 武漢志城時代文化発展有限公司、2019: 460-465。

[17] Yang Hua. SSM に基づくペット ショップ情報システムの設計と実装 [D]. 吉林大学、2019.

[18]ディ・ルー、ユーピン・チウ、チュン・チアン、シー・ワン、ウェイ・タン。SSMフレームワークに基づくキャンパスリソース共有プラットフォームの設計[J]。IOP カンファレンスシリーズ: 材料科学と工学、2019、490(6)。

[19]エヴァリストゥス・ディディク・マディヤトマジャ、チェルシー・アドラ。人事管理のための MySQL データベースの設計と使用[J]。科学技術の進歩と工学システムジャーナル、2019、4(6)。

[20]Di Lu、Yuping Qiu、Chun Qian、Xi Wang、Wei Tan. SSM フレームワークに基づくキャンパス リソース共有プラットフォームの設計[A]. Bosi Academic Exchange Center. 計算知能、工学および技術に関する第 2 回国際セミナー議事録(SCIET2018) [C]. 博思学術交流センター: 上海暁宇文化通信有限公司、2018: 477-482.

謝辞

先生のご指導とご協力のおかげで、この論文を完成させることができました。先生は、論文の内容と形式について非常に厳しい要求を持っていました。卒業論文を書く過程で、先生は私に多くのアドバイスをくれ、定期的にチェックしてくれました。先生は厳格に指導してくださいました。彼の教育と仕事に対する姿勢は、私にとって限りない賞賛と尊敬の念を抱かせます。新卒で卒論を書きながら就職活動も忙しく、たくさんの選択肢があり、迷ったり迷ったりしたとき、先生にはたくさんのアドバイスをいただき、根気よくご指導いただき、本当にありがとうございました。彼女とのおしゃべりを通じてたくさんのことが分かりました。

また、いつも私を信じ、支え、精神的にも経済的にもたくさんの力を与えてくれた両親に感謝し、卒業して就職する今、やっと両親に育ててもらった恩返しができると思います。そして指導。そして大学時代の先生方、クラスメートの皆様、私が何か問題に遭遇した時、いつも助けてくれた先生方、クラスメートの皆様、本当に感謝しています、これからも役に立つ人間に成長できるよう努力していきます。

プロジェクトのソースコードを無料で受け取るには、❤をフォローし、「いいね!」を集めてブロガーにプライベートメッセージを送信してください。ありがとうございます -

プロジェクトのソースコードを無料で受け取るには、❤をフォローし、「いいね!」を集めてブロガーにプライベートメッセージを送信してください。ありがとうございます -

プロジェクトのソースコードを無料で受け取るには、❤をフォローし、「いいね!」を集めてブロガーにプライベートメッセージを送信してください。ありがとうございます -

おすすめ

転載: blog.csdn.net/BS53804/article/details/135333760