IT未経験者 入社前課題memo③
結論から、本日は課題をほぼ進めておりません。
入社手続きなどが済んでから進むこともあり、そのような物理的な事情と復習をしたかったからです。
今までの実装の内容の整理(意味の確認)
-
Spring initializrでSpring boot(Javaプラットフォーム向けのフレームワークであるSpring Frameworkのひとつ)プロジェクトの雛形を生成したときにsettings.gradleが生成される、rootProject.nameをディレクトリ名に変更。
→これはRails newでappフォルダが自動生成されることと同じ? -
今回はパッケージを複数にして実装している。Javaは一つのPackage(ディレクトリ)で実装することもできますが、複数のクラスが生み出されてきた時などに見通しが悪くなってしまいます。
そのためPackageを分割して、見通しを良くしておくことが推奨される。 -
mysqlでは 'todo'を作成している。
-
Entity(実体? DBテーブルと1:1の関係になる)パッケージのTodoクラス。
テーブルが増えるとクラスも増えるので、それに伴って.javaファイルも増やして管理した方が良いだろう。 -
Repository(Entityを利用してDBと接続するもの)パッケージの作成。
-
Service(Repositoryを扱う)パッケージのTodoServiceクラス。 ここまででDBを取得する。
-
Controller(これらを扱い画面側に渡すもの)パッケージのTodoControllerクラス。
-
HTML
Javaでわかっていないなと思う記述
- EntityのTodoクラスの記述
@Data
@Entity
public class Todo {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String title;
private LocalDate deadline;
private boolean status;
@CreationTimestamp private LocalDateTime createTime;
@UpdateTimestamp private LocalDateTime updateTime;
}
- Repositoryの記述
@Repository
public interface TodoRepository extends JpaRepository<Todo, Long> {}
- Serviceクラスの記述
/** Todo Service */
@Service
@Transactional
@RequiredArgsConstructor
public class TodoService {
private final TodoRepository todoRepository;
/**
* Todo情報を全件取得する
*
* @return Todo情報
*/
public List<Todo> searchAllTodo() {
return todoRepository.findAll();
}
}
- Controllerの記述
@GetMapping // --- ③このメソッドがHTMLのGetメソッドで呼び出されることを示すアノテーション
public String index(Model model) {
model.addAttribute("todoList" , todoService.searchAllTodo());
return "index"; // --- ④このメソッドが何かというHTMLファイルを呼び出すのかを示す文字列
}
@PostMapping("/register")
public String register(TodoForm todoForm) {
todoService.saveTodo(todoForm);
return "redirect:/";
- HTML
<body>
<div>
<table>
<tr>
<th>タイトル</th>
<th>期日</th>
<th>ステータス</th>
</tr>
<tr th:each="todo : ${todoList}" th:object="${todo}">
<td th:text="*{title}"></td>
<td th:text="${#temporals.format(todo.deadline, 'yyyy年MM月dd日')}"></td>
<td>
<span th:if="${todo.status}">完了</span>
<span th:unless="${todo.status}">未完了</span>
</td>
</tr>
</table>
</div>
</body>
まとめ
今までやっていたことの意味だとか関連性などの流れはほぼ理解できたのですが、javaの記述が全くわかっていないので、一旦javaのカリキュラムを進めます💦
理解したような気になれば仮説と共に編集して追記します。
Author And Source
この問題について(IT未経験者 入社前課題memo③), 我々は、より多くの情報をここで見つけました https://zenn.dev/fort_syunsyun/articles/5264f6a48024e0著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Collection and Share based on the CC protocol