Skip to content

フェーズ 3 – データ持続性とStreams (2~3ヶ月)

基本的なSQL

  • DDL: CREATE, ALTER
  • DML: SELECT, INSERT, UPDATE, DELETE
  • Joins: INNER, LEFT, RIGHT
  • Keys: プライマリキーと外部キー。
  • 正規化: 1NF、2NF、3NF。
  • : 製品とカテゴリーのテーブルを作成。

JDBCとConnection Pool

  • Classes: Connection, Statement, PreparedStatement, ResultSet
  • Connection Pool(HikariCP)の使用。
  • ベストプラクティス: try-with-resourcesSQLExceptionの処理。

Hibernate + JPAの実践

  • Annotations: @Entity, @Id, @ManyToOne, @OneToMany
  • 設定: persistence.xmlまたはapplication.properties
  • EntityManagerを使用したCRUD操作。
  • FlywayまたはLiquibaseによるデータベース移行の紹介。

NoSQLデータベースの紹介

  • 概念: ドキュメント、コレクション、水平スケーラビリティ。
  • MongoDB: セットアップ、MongoRepositoryを使用したCRUD操作。
  • Spring Data MongoDB: Spring Bootとの統合。
  • : MongoDBに製品のシステムアクティビティログを保存。

StreamsとLambda Expressions

  • 操作: filter, map, sorted, collect, forEach, reduce
  • : 価格で製品をフィルタリングし、名前でソート。

OptionalとFunctional Interfaces

  • Optional: orElse, ifPresent, orElseThrow
  • Functional Interfaces: Function, Predicate, Consumer
  • : StreamsでデータをフィルタリングするためにPredicateを使用。

高度なCollections

  • LinkedList: 効率的な挿入/削除。
  • TreeMap: 順序付けられたkey-valueペア。
  • PriorityQueue: 優先キュー。
  • LinkedHashMapDeque(紹介)。

ロギング(SLF4J/Logback)

  • SLF4JとLogbackの設定。
  • レベル: INFO, DEBUG, ERROR
  • : Hibernateクエリをログに記録。

トランザクションの概念(ACID)

  • 原子性、一貫性、分離性、耐久性。
  • JDBC(commit, rollback)およびHibernate(@Transactional)を使用したトランザクション。

インデックスと実行計画

  • Indexes: プライマリ、ユニーク、複合。
  • クエリオプティマイズのためのEXPLAINの使用。
  • : 頻繁に検索される列にインデックスを作成。

ファイル操作(オプション)

  • Files, BufferedReaderを使用した読み書き。
  • : Streamsを使用して製品レポートをCSVにエクスポート。

データベーステスト(紹介)

  • H2JUnitを使用したインテグレーションテスト。
  • : Hibernateを使用したCRUD操作のテスト。

最終プロジェクト

製品管理システム
- データベース: ProductCategoryテーブル(1:Nの関係)。
- Java: JPA(Product, Category)を使用したクラス、HibernateによるCRUD。
- オプション: MongoDBに製品変更ログを保存。
- オプション: MongoDBに動的な製品属性(例: 技術仕様)を保存。
- Streams: 製品のフィルタリング/ソート(例: 価格またはカテゴリーによる)。
- ロギング: データベース操作の監視。
- Git: 機能ごとのcommit(例: feature/crud, feature/streams)。
- GitHubに公開し、説明的なREADMEを付ける。

リソース