🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Java EE

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

JavaServer Faces

JavaServer Faces(JSF)はJavaをベースとしたコンポーネントベースのwebアプリケーション開発用のフレームワークです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

3回答

2199閲覧

JavaのCRUDアプリを作成したいが各クラスの役割がわからない

退会済みユーザー

退会済みユーザー

総合スコア0

Java EE

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

JavaServer Faces

JavaServer Faces(JSF)はJavaをベースとしたコンポーネントベースのwebアプリケーション開発用のフレームワークです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

2クリップ

投稿2021/08/10 13:57

前提・実現したいこと

課題で、JavaのCRUDアプリを作成しています。
学生が授業の登録をして、授業一覧と登録した学生をブラウザに(特に絞らず全件)表示させるアプリです。

コードをそのまま記載できないので質問がわかりづらくなります、申し訳ないです。

【課題の前提】
・MySQLを使う、テーブルはすでにできているので作成しなくてよい。
・学生のテーブルと、授業のテーブルがありOneToMany(学生対授業)となっている。
・配布された未完成のファイルの穴を埋めるようにする。すべて使わなくともいいし、加えてもよい。
・Javaだがどのような技術を使うかはわからない(Spring bootはこれからやるので違う)。

100時間以上考えたのですが、どうしても詰まってしまったので質問させてください。
今回は「どのクラスにどんな役割がある(と予想される)のか」を教えていただきたいです。

どうぞよろしくお願いいたします。

発生している問題・エラーメッセージ

配布されたファイルが、どれがどの役割を持ったものかわかりません。 以下の6つのjavaファイルがあり、 User.java Lesson.java Bean.java UserBean.java UserRepository.java UserService.java それぞれ以下のような記載がありました。 User.java ←@Entity(setter/getterがずらずら並んでいる) Lesson.java ←@Entity(setter/getterがずらずら並んでいる) Bean.java ←Loggerやserializableがある UserBean.java ←postconstructやgetListがある UserRepository.java ←interfaceやJpaRepositoryがある UserService.java ←@serviceやfindList()がある 上2つはエンティティということはわかったのですが、他は何を書く(と思われる)ものなのでしょうか? 一番下の「UserService.java」はfindListと書いてあったので検索などの実際の機能を入れておくところかと思いました。

試したこと

とにかく途中まで似ているソースコードをウェブ上から探し出して入力してみましたがどれもうまくいきませんでした。
色々な解説サイトを見たり書籍を買ってみたりしましたが、同じやり方(ファイル構成)でアプリケーションを作っているものが見つかりませんでした。
似ているものを作っていてもDao、facade、Bean、Controllerなど概念が異なっており、本課題にあてはめるならばどのクラスに記述すればよいのかがわかりませんでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

K_3578

2021/08/11 00:28

Springbootはwebアプリケーション開発用のフレームワークなので、それを使わないのなら JSPとServletでやるってことかなぁ。あくまで予想でしか無いけど、書いてる内容が全く分からない なんてことはないのでは?授業でやっても無いことを課題にするとは思えないし
m.ts10806

2021/08/11 05:05

>100時間以上考えたのですが この情報は無意味です。調べたこと試したことをきちんと記載してください。適切にキーワードを投入できていれば見つけて検証して実装でそう何日もかかる作業ではありません。
退会済みユーザー

退会済みユーザー

2021/08/12 14:22

K_3578さん 課題といっても、自分の受けた授業ではないのでほぼノーヒント状態です。 >JSPとServletでやるってことかなぁ こういった情報も非常に理解の助けになります。ありがとうございます!
guest

回答3

0

ベストアンサー

・配布された未完成のファイルの穴を埋めるようにする。すべて使わなくともいいし、加えてもよい。

すべて使わなくてもよいと言ってるのですから、

配布されたファイルが、どれがどの役割を持ったものかわかりません。

は、特に問題ないと思います。

自分流で、
1.授業のテーブルに学生のテーブルを外部結合して全件取得するSQLを考える。
2.上で取得したものを、ブラウザに表示する。
という実装を試してみてください。

投稿2021/08/11 01:41

TetsujiMiwa

総合スコア1124

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jimbe

2021/08/11 08:19

この「全て使わなくても~、加えても~」が一番キモかもしれないですね。 データはある、(簡単な)仕様もある、出来るなら自分のやりたいようにやって良い、出来ないなら雛形を見せるのでどうにかしてみろ、と。 雛形を無視して作って出題者を「ぎゃふん」(古)と言わせるつもりで頑張ってみて欲しいものです。
退会済みユーザー

退会済みユーザー

2021/08/12 14:31

jimbeさんの「この「全て使わなくても~、加えても~」が一番キモかもしれないですね。」というコメントで、もしかすると半分はダミーデータでひねりのある課題なのではないかと思いつきました。 かなり調べてはいるので、さすがにクラスの関係性や役割がわかってもいい気がします。 大変助かりました、コメントありがとうございます!
退会済みユーザー

退会済みユーザー

2021/08/12 14:39

TetsujiMiwaさん 実装への第一歩を示してくださり、ありがとうございます。 ノーヒント状態だったので非常に有難いです。 また、有益な回答、コメントを寄せてくださったBluOxyさん、K_3578さん、jimbeさん、ありがとうございました!
guest

0

クラス名を見てみるとどうやらレイヤーを分けているようですから、各レイヤーのソースコードを見てどういう類の処理が書かれているのか推測するまでが関の山かと思います。

100時間以上考えた

どれだけ脳内だけで解決を試みても、そのアプリケーションがどのような設計で作られたかは製作者しか分かりません。

JavaのCRUDアプリを作成したいが各クラスの役割がわからない

情報を1つずつ整理して、検索エンジンで調べられる程度の一般的な内容は調べてみたらどうでしょうか。
下記レベルに応じて行動してみましょう。

** レベル1.** 頭の中で考えたけど分からない

  • 検索エンジンで調べてみる

** レベル2.** 検索エンジンで調べたけれど分からない

  • 講師に聞く
  • 課題に解説がないか確認する
  • 質問を編集してどのページを参照してどの部分が分からなかったのかを記載する

行動してみたら意外と理解できるようになる単語もあるかもしれません。質問するまでもなく。
プログラミングの学習をする際はただ考えるだけではなく目的意識を持って行動することが大事です。

そして DAO, Entity, Bean, Service, Repository, Facade, Controller などの単語をそれぞれ検索エンジン等で調べた結果をメモに残しませんか。
(頭の中で整理できるならメモは必要ありませんが、慣れない内は残しておくと良いかもしれません)

回答ではなく質問の修正依頼のような形にはなりますが、そのメモを質問に追記しても良いでしょう。
むしろ、追記する方が回答する側としてはどの部分で躓いているのか、どの部分を誤って理解しているのかわかりやすいです。

これなら 100 時間もかからずにそれぞれの役割が 検索エンジンで調べられる程度に わかるようになります。

投稿2021/08/10 15:56

編集2021/08/10 16:04
BluOxy

総合スコア2663

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/08/12 14:27

>各レイヤーのソースコードを見てどういう類の処理が書かれているのか推測するまでが関の山かと思います。 これがわかっただけでも自分にとっては助けになります。 ソースコードを一行一行検索しているのですが、もしかすると用意された半分は実際に使用するもので、もう半分はダミーの可能性があるのではないか、とコメントを読んで思いました。 回答ありがとうございました!
guest

0

残念ながら名前だけで機能はわかるわけもありません
課題なら、講師や教授に聞きましょう

投稿2021/08/10 15:00

y_waiwai

総合スコア88030

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問