他のツール
SQL DDL から Java エンティティクラス変換ツール
SQL DDL文をJavaエンティティクラスに変換、JPA、Lombok、バリデーションアノテーションをサポート
データ型マッピング
文字列型
- VARCHAR, CHAR, TEXT → String
- LONGTEXT, MEDIUMTEXT → String
- ENUM → String
数値型
- INT, INTEGER → Integer
- BIGINT → Long
- SMALLINT → Short
- TINYINT → Byte
- DECIMAL, NUMERIC → BigDecimal
- FLOAT, DOUBLE → Double
時間型
- DATETIME, TIMESTAMP → LocalDateTime
- DATE → LocalDate
- TIME → LocalTime
その他の型
- BOOLEAN, BOOL → Boolean
- BLOB, BINARY → byte[]
- JSON → String
命名規約
キャメルケース:
user_name → userNameaccess_date → accessDateアンダースコア:
user_name → user_nameaccess_date → access_date時間型マッピング
時間オブジェクト有効:
DATETIME → LocalDateTimeDATE → LocalDateTIME → LocalTime時間オブジェクト無効:
DATETIME → StringDATE → StringTIME → Stringツール概要:SQL DDL から Java エンティティクラス変換ツール
Java開発、特にSpring BootとJPAフレームワークを使用する際、データベーステーブル構造に基づいてエンティティクラスを作成する必要がよくあります。これらのエンティティクラスを手動で書くのは時間がかかるだけでなく、エラーが発生しやすいです。このツールは、SQL DDL文を標準的なJavaエンティティクラスに自動変換し、開発効率を大幅に向上させます。
SQL DDL から Java エンティティクラス変換ツールとは?
SQL DDL から Java エンティティクラス変換ツールはSQL DDLとJava entityの変換を素早く行い、すぐ使える結果を出力します。
使い方
- SQL DDLの内容を貼り付けるかパラメータを入力します。
- Java entityの出力形式を選び、オプションを調整します。
- 結果を確認してコピーまたはダウンロードします。
よくある利用シーン
- SQL DDL↔Java entityのフォーマット移行
- SQL DDLデータをJava entityのワークフローやコード生成に利用
- 変換結果の仕様チェック
❓ よくある質問
Q1: 変換に失敗する/空になる?
A: SQL DDLの入力が正しいか確認してください。
Q2: 出力が違って見える?
A: Java entityのルールに合わせて整形される場合があります。
Q3: 一括処理は?
A: 安定のため小分けにして処理してください。
✨ 主な機能
- 🔄 スマート変換: CREATE TABLE文を自動解析し、対応するJavaエンティティクラスを生成
- 🏷️ 複数アノテーション対応: JPA、Lombok、Bean Validationアノテーションの生成をサポート
- 📊 型マッピング: SQLデータ型からJava型への完全なマッピング
- ⚙️ 設定可能オプション: パッケージ名、アノテーション生成、命名規約、時間型マッピングのカスタマイズ
- 🔧 制約処理: 主キー、外部キー、一意制約、デフォルト値などの自動処理
- 📝 コード規約: Java命名規約に従ったコードの生成
- 🎯 命名の柔軟性: キャメルケースとアンダースコア命名の両方をサポート
- ⏰ 時間型選択: 時間フィールドを時間オブジェクトまたは文字列にマッピングするオプション
📖 使用例
基本テーブル構造の変換
入力 SQL DDL:
CREATE TABLE users (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
email VARCHAR(100) NOT NULL,
age INT,
is_active BOOLEAN DEFAULT TRUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
出力 Javaエンティティ:
package com.example.entity;
import java.time.LocalDateTime;
import javax.persistence.*;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import java.io.Serializable;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Table(name = "users")
public class Users implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", nullable = false)
private Long id;
@Column(name = "username", nullable = false, unique = true)
private String username;
@Column(name = "email", nullable = false)
private String email;
@Column(name = "age")
private Integer age;
@Column(name = "is_active")
private Boolean isActive;
@Column(name = "created_at")
private LocalDateTime createdAt;
@Column(name = "updated_at")
private LocalDateTime updatedAt;
}
📐 データ型マッピングテーブル
MySQL型マッピング
| SQL型 | Java型 | 説明 |
|---|---|---|
| VARCHAR, CHAR, TEXT | String | 文字列型 |
| INT, INTEGER | Integer | 32ビット整数 |
| BIGINT | Long | 64ビット整数 |
| SMALLINT | Short | 16ビット整数 |
| TINYINT | Byte | 8ビット整数 |
| DECIMAL, NUMERIC | BigDecimal | 高精度小数 |
| FLOAT | Float | 単精度浮動小数点 |
| DOUBLE | Double | 倍精度浮動小数点 |
| BOOLEAN, BOOL | Boolean | ブール値 |
| DATETIME, TIMESTAMP | LocalDateTime | 日時 |
| DATE | LocalDate | 日付 |
| TIME | LocalTime | 時刻 |
| JSON | String | JSONデータ |
| BLOB, BINARY | byte[] | バイナリデータ |
⚙️ 設定オプション詳細
アノテーション設定
- JPA アノテーション生成:
@Entity、@Table、@Column、@IdなどのJPA標準アノテーションを追加 - Lombok アノテーション生成:
@Data、@NoArgsConstructor、@AllArgsConstructorアノテーションを追加 - バリデーションアノテーション生成:
@NotNull、@SizeなどのBean Validationアノテーションを追加 - Serializable インターフェース実装: 生成されるクラスにシリアライゼーションインターフェースを実装
命名規約設定
- キャメルケース有効:
user_name→userName(推奨、Java規約に準拠) - アンダースコア保持:
user_name→user_name(特別な要件のシナリオ)
時間型マッピング設定
- 時間オブジェクトにマッピング:
DATETIME→LocalDateTime(推奨、型安全) - 文字列にマッピング:
DATETIME→String(互換性を考慮)
🔧 使用のコツ
- 命名規約: プロジェクトの要件に応じてキャメルケースまたはアンダースコア命名を選択
- アノテーション選択: JPA、Lombok、バリデーションアノテーションを選択的に生成できます
- パッケージ名設定: 生成されるコードのパッケージ名をカスタマイズできます
- シリアライゼーション対応: Serializableインターフェースの実装を選択できます
- 制約処理: 主キー、一意制約、デフォルト値などを自動認識します
- 時間型: ビジネス要件に基づいて時間オブジェクトまたは文字列マッピングを選択
🎓 学習ポイント
- SQL DDL文の構造と構文の理解
- Javaエンティティクラスの設計とアノテーション使用の習得
- JPA仕様とHibernate実装の学習
- データベース設計とORMマッピングのベストプラクティスの理解
このSQL DDLからJavaエンティティクラス変換ツールは、Java開発者の強力なアシスタントであり、データベースエンティティの作成をシンプルで効率的にします!