Outil de Conversion SQL DDL vers Entité Java

Convertit les déclarations SQL DDL en classes d'entité Java avec support des annotations JPA, Lombok et validation

Mappage des Types de Données

Types de Chaîne

  • VARCHAR, CHAR, TEXT → String
  • LONGTEXT, MEDIUMTEXT → String
  • ENUM → String

Types Numériques

  • INT, INTEGER → Integer
  • BIGINT → Long
  • SMALLINT → Short
  • TINYINT → Byte
  • DECIMAL, NUMERIC → BigDecimal
  • FLOAT, DOUBLE → Double

Types de Temps

  • DATETIME, TIMESTAMP → LocalDateTime
  • DATE → LocalDate
  • TIME → LocalTime

Autres Types

  • BOOLEAN, BOOL → Boolean
  • BLOB, BINARY → byte[]
  • JSON → String

Convention de Nommage

CamelCase:user_name → userNameaccess_date → accessDate
Trait de Soulignement:user_name → user_nameaccess_date → access_date

Mappage des Types de Temps

Objets Temps Activés:DATETIME → LocalDateTimeDATE → LocalDateTIME → LocalTime
Objets Temps Désactivés:DATETIME → StringDATE → StringTIME → String

Apercu de l'outil : Outil de Conversion SQL DDL vers Entité Java

Dans le développement Java, en particulier lors de l'utilisation de Spring Boot et des frameworks JPA, il est souvent nécessaire de créer des classes d'entité basées sur les structures de tables de base de données. Écrire manuellement ces classes d'entité est non seulement chronophage mais aussi sujet aux erreurs. Cet outil convertit automatiquement les instructions SQL DDL en classes d'entité Java standard, améliorant considérablement l'efficacité de développement.

Qu'est-ce que Outil de Conversion SQL DDL vers Entité Java ?

Outil de Conversion SQL DDL vers Entité Java convertit SQL DDL en Java entity et génère un résultat prêt à l'emploi.

Comment l'utiliser

  1. Collez le contenu SQL DDL ou saisissez des paramètres.
  2. Choisissez Java entity en sortie et ajustez les options.
  3. Vérifiez le résultat puis copiez ou téléchargez.

Cas d'usage courants

  • Migration de format SQL DDL↔Java entity
  • Utiliser des données SQL DDL dans des workflows Java entity ou la génération de code
  • Valider la conversion par rapport aux spécifications

❓ FAQ

Q1 : Pourquoi le résultat est incorrect ?
R : Vérifiez le format d'entrée et les options, puis essayez l'exemple s'il existe.

Q2 : Et si l'entrée est très grande ?
R : Découpez les données en plus petits blocs pour plus de stabilité.

Q3 : Comment sauvegarder la sortie ?
R : Utilisez les boutons de copie ou de téléchargement si l'outil les propose.

✨ Fonctionnalités Principales

  • 🔄 Conversion Intelligente: Analyse automatiquement les instructions CREATE TABLE et génère les classes d'entité Java correspondantes
  • 🏷️ Support d'Annotations Multiples: Génère les annotations JPA, Lombok et Bean Validation
  • 📊 Mappage de Types: Mappage complet des types de données SQL vers les types Java
  • ⚙️ Options Configurables: Personnalise nom du package, génération d'annotations, conventions de nommage et mappage des types de temps
  • 🔧 Gestion des Contraintes: Gère automatiquement les clés primaires, clés étrangères, contraintes uniques, valeurs par défaut, etc.
  • 📝 Standards de Code: Génère du code qui suit les conventions de nommage Java
  • 🎯 Flexibilité de Nommage: Support des styles de nommage camelCase et trait de soulignement
  • Choix des Types de Temps: Option pour mapper les champs temps vers des objets temps ou des chaînes

📖 Exemples d'Utilisation

Conversion de Structure de Table Basique

SQL DDL d'Entrée:

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
);

Entité Java de Sortie:

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;
}

📐 Table de Mappage des Types de Données

Mappage des Types MySQL

Type SQL Type Java Description
VARCHAR, CHAR, TEXT String Types de chaîne
INT, INTEGER Integer Entier 32 bits
BIGINT Long Entier 64 bits
SMALLINT Short Entier 16 bits
TINYINT Byte Entier 8 bits
DECIMAL, NUMERIC BigDecimal Décimal haute précision
FLOAT Float Virgule flottante simple précision
DOUBLE Double Virgule flottante double précision
BOOLEAN, BOOL Boolean Valeur booléenne
DATETIME, TIMESTAMP LocalDateTime Date et heure
DATE LocalDate Date seulement
TIME LocalTime Heure seulement
JSON String Données JSON
BLOB, BINARY byte[] Données binaires

⚙️ Options de Configuration

Configuration des Annotations

  • Générer Annotations JPA: Ajouter @Entity, @Table, @Column, @Id et autres annotations standard JPA
  • Générer Annotations Lombok: Ajouter annotations @Data, @NoArgsConstructor, @AllArgsConstructor
  • Générer Annotations de Validation: Ajouter @NotNull, @Size et autres annotations Bean Validation
  • Implémenter Interface Serializable: Faire implémenter l'interface de sérialisation aux classes générées

Configuration de Convention de Nommage

  • Activer CamelCase: user_nameuserName (Recommandé, suit les conventions Java)
  • Conserver Trait de Soulignement: user_nameuser_name (Pour des exigences spéciales)

Configuration de Mappage des Types de Temps

  • Mapper vers Objets Temps: DATETIMELocalDateTime (Recommandé, type sûr)
  • Mapper vers Chaînes: DATETIMEString (Pour des considérations de compatibilité)

🔧 Conseils d'Utilisation

  1. Conventions de Nommage: Choisissez camelCase ou nommage avec trait de soulignement selon les exigences du projet
  2. Sélection d'Annotations: Vous pouvez générer sélectivement les annotations JPA, Lombok et de validation
  3. Configuration du Nom de Package: Vous pouvez personnaliser le nom du package pour le code généré
  4. Support de Sérialisation: Option pour implémenter l'interface Serializable
  5. Gestion des Contraintes: Reconnaît automatiquement les clés primaires, contraintes uniques, valeurs par défaut, etc.
  6. Types de Temps: Choisissez le mappage d'objets temps ou de chaînes selon les exigences métier

Cet outil de conversion SQL DDL vers Entité Java est un assistant puissant pour les développeurs Java, rendant la création d'entités de base de données simple et efficace!