NEXTDesign
Javaプログラミング
更新 2025.8.30 NEXTDesign
Java 学習ロードマップ
このロードマップは、プログラミング未経験の方やJava入門者の方が自習する際の道しるべです。
設計やテストについても習得することを目指します。
- 情報技術の基礎
- プログラミング環境を準備します
プログラムを作成するためには統合開発環境(IDE)というソフトウェアを使用します。まず最初に自分のPCにIDEをインストールします。
本テキストでは Pleiades All in One Eclipse を使用しています。
インストールとカスタマイズの例
他のIDEの例
- Eclipse
- Spring Tools 4 for Eclipse
- Spring Tools 4 for Visual Studio Code
- IntelliJ IDEA
- Visual Studio Code (VSCode)
Maven/Gradleプロジェクトであれば基本的にどのIDEでもインポート可能です。
しかし、IDE独自の設定ファイルの互換性は低いです。
Eclipseの project, .classpath
IntelliJ IDEAの.idea, .iml
VSCodeの .vscode
- 小さなプログラムを作成し動かしてみます
- アルゴリズムとデータ構造
- 関連する概念・用語
- Java
- Javaの特徴
- Javaのバージョン
- Javaプログラムの構造
- Javaコードの例
- 命名規則と予約語
- 変数とデータ型
- リテラルと定数
- 式と演算子
- 制御文
- メソッド
- メソッドとは
- 定義する
- 使用する(呼び出す)
- 文とブロック
- 変数
- 型
- リテラル
- 演算子
- 制御文
- スコープ
- クラス 宣言
- メソッド 宣言
- 修飾子
- メソッドのオーバーロード
- mainメソッド
- インスタンス
- this
- コンストラクタとイニシャライザ
- Javadoc
- 命名
- 型
- プリミティブ型
- 参照型
- ラッパークラス
- オートボクシング・アンボクシング
- クラス定義
- パッケージ
- 修飾子
- 継承
- 抽象クラス
- インタフェース
- 匿名クラス
- 型判定
- 同一性と等価性
- 列挙型(Enumとenum)
- ジェネリクス(総称型)
- 配列
- コレクション
- List
- Map
- Set
- ストリーム
- ラムダ式
- StreamAPI
- Streamの作成
- Streamの中間処理
- Streamの終端処理
- 例外
- 文字列操作
- 正規表現
- ファイル操作
- 日付 操作
- データベース アクセス
Java で RDB(MySQL, PostgreSQL など)を扱う際には、抽象化レベルや開発効率に応じていくつかの選択肢があります。
大きく分けると「生の SQL を使う」か「抽象化レイヤーを使う」か、になります。
- 選択肢1: SQL 直利用
- Java標準 JDBC (Java Database Connectivity)
- 抽象化レベル:低
- 概要
Java 標準の API。RDB と接続して SQL を直接発行する。
- 特徴
- すべての操作を自分で SQL で書く。
- 接続管理(Connection)、SQL 実行(Statement / PreparedStatement)、結果取得(ResultSet)をハンドリング。
- メリット
- 軽量で依存が少ない
。
- SQL を完全に制御できる。
- デメリット
- 冗長なコード(例: try-catch-finally の多用)。
- オブジェクトとテーブルのマッピングを自分で実装する必要がある。
- 選択肢2: SQL マッピング系
- 抽象化レベル:中
- Spring JDBC
- 概要
JDBC をラップして便利にしたもの(Spring Framework)。
- 特徴
- JdbcTemplate で接続・リソース解放処理を簡略化。
- 依然として SQL を自分で書くが、例外処理やマッピングがシンプルになる。
- MyBatis
- 概要
SQL マッピングフレームワーク。
- 特徴
- SQL は XML やアノテーションに定義。
- SQL とオブジェクトのマッピングを自動化。
- メリット
- デメリット
- 大規模開発では SQL 管理が煩雑になる場合あり。
- 選択肢3: O/R マッピング (ORM)
- Java標準ORM JPA (Java Persistence API)
- 抽象化レベル:高
- 概要
- Java 標準の ORM API(インタフェース仕様)。
- 実装として Hibernate や EclipseLink が有名。
- 特徴
- @Entity を付けたクラスをテーブルにマッピング。
- EntityManager を使って永続化、検索、更新、削除を行う。
- SQL ではなく JPQL (Java Persistence Query Language) を使用可能。
- メリット
- ドメインモデルとデータベースの整合性を保ちやすい。
- 生 SQL を書かなくても CRUD ができる。
- デメリット
- 学習コストが高い。
- 複雑な SQL チューニングには不向き。
- 補助的な選択肢
- jOOQ
- 概要
- タイプセーフな SQL DSL を提供するフレームワーク
- 特徴
- SQL をコードで書ける(Java の型チェックが効く)
- DB の方言(Dialect)毎の SQL を自動生成。
- メリット
- デメリット
- まとめ
- SQL を完全に書きたい → JDBC, Spring JDBC, MyBatis, jOOQ
- SQL をなるべく書きたくない/ドメインモデル重視 → JPA
- 両立したい → MyBatis + Spring Boot, あるいは jOOQ
- よく使われる選択肢
- 小規模/SQL 主体 → Spring JDBC or MyBatis
- 中~大規模/ドメイン駆動 → JPA
- SQL の制御を強めつつ型安全に → jOOQ
- JPA
JPAでは EntityManage を使用してクエリーを構築/実行する。
更新中
- 開発プロセス
- 設計(調査・分析・基本設計・プログラム設計)
- テスト計画・テスト実施
- ドキュメンテーション
- ドキュメントの例