IT未経験者 入社前課題memo⑦
昨日までの超基礎java学習を終えて再度課題に戻って取り組んでみることにしました。
今日も今日とて夜に活動を開始した。
アプリケーション構造をざっくり復習すると、下記の1~3を経由してレスポンスを返している。
- クライアントサイド(HTML、CSS,JSなど)
- サーバーサイド(Javaという言語とTomcatを用いて、データベースとのやりとりを可能にしている。
- 中身の構造Controller, Service, Repositoryをjava言語によって記述していく
- Controllerの中身 Form
- Serviceの中身 Entity, 検索条件
- Repositoryの中身 Entity, 検索条件
3.Datstore (MySQL)
制作内容にてMEMO
- SQLコマンドで直接テーブルを作成しておいて、後程データの取得と表示を確認する。
- Entityパッケージ内には、Todoクラス(データベースのテーブルと1:1の関係になる)
- Repositoryパッケージは、そのEntityを利用してデータベースをと接続する。
- Serviceパッケージ内、TodoServiceクラスはRepositoryを扱うもの。
- Controllerパッケージ内、TodoControllerは上記を扱ってHTML側に渡す役割。
- Form(登録機能)パッケージ内、TodoFormはHTML側から送られてくるデータを受け取る機能
- 再度Controllerにて、送られてきたデータの処理機能を追加する。URLやデータ送信先の指定
- 再度Serviceにて登録処理を追加。todoFormの入力値をTodoに送る?
検索機能
search.htmlで検索ワードを入力して
→ コントローラーで検索ワードを受け取りサービスクラスへ送る
→ サービスクラスではレポジトリに検索処理を依頼する
→ レポジトリが結果をサービスに返す
→ サービスがコントローラーに結果を返す
→ コントローラーがsearch.htmlに結果を返す
→ html上に表示される
- レポジトリクラスの編集
TodoRepository.java
@Repository
public interface TodoRepository extends JpaRepository<TodoEntity, Long> {
//↓追加する
List<Todo> findByTitleContainingOrderByCreateTimeDesc(String title);
}
「JpaRepository」というインターフェイスを継承して作成します。
public interface 名前 extends JpaRepository <エンティティ , IDタイプ>
"Containing" 部分一致
"OrderByCreateTimeDesc" CreateTimeの昇順(最新順)
- サービスクラスの編集
TodoService.java
public List<Todo> findToDoByTitle(String title) {
return todoRepository.findByTitleContainingOrderByCreateTimeDesc(title);
}
- コントローラーの編集
TodoController.java
/**
* 検索画面を表示
*
* @return 画面表示用HTMLパス
*/
@GetMapping("/search")
public String search() {
return "search";
}
/**
*
* @param model
* @param title
* @return 画面表示用URL
*/
@GetMapping("/search/result")
public String searchResult(Model model,@ModelAttribute TodoSearchForm searchForm) {
List<Todo> searchResult = todoService.findToDoByTitle(searchForm.getTitle());
model.addAttribute("todoList", searchResult);
return "result";
}
Author And Source
この問題について(IT未経験者 入社前課題memo⑦), 我々は、より多くの情報をここで見つけました https://zenn.dev/fort_syunsyun/articles/2b47d4161ce2c4著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Collection and Share based on the CC protocol