Herramienta de Conversión SQL DDL a Entidad Java

Convierte declaraciones SQL DDL a clases de entidad Java con soporte para anotaciones JPA, Lombok y validación

Mapeo de Tipos de Datos

Tipos de Cadena

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

Tipos Numéricos

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

Tipos de Tiempo

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

Otros Tipos

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

Convención de Nomenclatura

CamelCase:user_name → userNameaccess_date → accessDate
Guión Bajo:user_name → user_nameaccess_date → access_date

Mapeo de Tipos de Tiempo

Objetos de Tiempo Habilitados:DATETIME → LocalDateTimeDATE → LocalDateTIME → LocalTime
Objetos de Tiempo Deshabilitados:DATETIME → StringDATE → StringTIME → String

Resumen de la herramienta: Herramienta de Conversión SQL DDL a Entidad Java

En el desarrollo Java, especialmente al usar Spring Boot y frameworks JPA, a menudo es necesario crear clases de entidad basadas en estructuras de tablas de base de datos. Escribir manualmente estas clases de entidad no solo consume tiempo sino que también es propenso a errores. Esta herramienta convierte automáticamente declaraciones SQL DDL en clases de entidad Java estándar, mejorando enormemente la eficiencia de desarrollo.

¿Qué es Herramienta de Conversión SQL DDL a Entidad Java?

Herramienta de Conversión SQL DDL a Entidad Java convierte SQL DDL a Java entity rápidamente y entrega un resultado listo para usar.

Cómo usarlo

  1. Pega el contenido de SQL DDL o ingresa parámetros.
  2. Elige Java entity como salida y ajusta opciones.
  3. Revisa el resultado y copia o descarga.

Casos de uso comunes

  • Migraciones de formato SQL DDL↔Java entity
  • Usar datos SQL DDL en flujos Java entity o generación de código
  • Validar la conversión contra especificaciones

❓ Preguntas frecuentes

P1: ¿La conversión falló o quedó vacía?
R: Verifica que el SQL DDL sea válido y completo.

P2: ¿El resultado luce distinto?
R: El formato puede cambiar para ajustarse a las reglas de Java entity.

P3: ¿Cómo procesar en lote?
R: Divide en partes pequeñas para mayor estabilidad.

✨ Características Principales

  • 🔄 Conversión Inteligente: Analiza automáticamente declaraciones CREATE TABLE y genera clases de entidad Java correspondientes
  • 🏷️ Soporte de Múltiples Anotaciones: Genera anotaciones JPA, Lombok y Bean Validation
  • 📊 Mapeo de Tipos: Mapeo completo de tipos de datos SQL a tipos Java
  • ⚙️ Opciones Configurables: Personaliza nombre del paquete, generación de anotaciones, convenciones de nomenclatura y mapeo de tipos de tiempo
  • 🔧 Manejo de Restricciones: Maneja automáticamente claves primarias, claves foráneas, restricciones únicas, valores por defecto, etc.
  • 📝 Estándares de Código: Genera código que sigue las convenciones de nomenclatura de Java
  • 🎯 Flexibilidad de Nomenclatura: Soporte para estilos de nomenclatura camelCase y guión bajo
  • Elección de Tipos de Tiempo: Opción para mapear campos de tiempo a objetos de tiempo o cadenas

📖 Ejemplos de Uso

Conversión de Estructura de Tabla Básica

SQL DDL de Entrada:

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

Entidad Java de Salida:

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

📐 Tabla de Mapeo de Tipos de Datos

Mapeo de Tipos MySQL

Tipo SQL Tipo Java Descripción
VARCHAR, CHAR, TEXT String Tipos de cadena
INT, INTEGER Integer Entero de 32 bits
BIGINT Long Entero de 64 bits
SMALLINT Short Entero de 16 bits
TINYINT Byte Entero de 8 bits
DECIMAL, NUMERIC BigDecimal Decimal de alta precisión
FLOAT Float Punto flotante de precisión simple
DOUBLE Double Punto flotante de doble precisión
BOOLEAN, BOOL Boolean Valor booleano
DATETIME, TIMESTAMP LocalDateTime Fecha y hora
DATE LocalDate Solo fecha
TIME LocalTime Solo hora
JSON String Datos JSON
BLOB, BINARY byte[] Datos binarios

⚙️ Opciones de Configuración

Configuración de Anotaciones

  • Generar Anotaciones JPA: Agregar @Entity, @Table, @Column, @Id y otras anotaciones estándar JPA
  • Generar Anotaciones Lombok: Agregar anotaciones @Data, @NoArgsConstructor, @AllArgsConstructor
  • Generar Anotaciones de Validación: Agregar @NotNull, @Size y otras anotaciones Bean Validation
  • Implementar Interfaz Serializable: Hacer que las clases generadas implementen la interfaz de serialización

Configuración de Convención de Nomenclatura

  • Habilitar CamelCase: user_nameuserName (Recomendado, sigue convenciones Java)
  • Mantener Guión Bajo: user_nameuser_name (Para requisitos especiales)

Configuración de Mapeo de Tipos de Tiempo

  • Mapear a Objetos de Tiempo: DATETIMELocalDateTime (Recomendado, tipo seguro)
  • Mapear a Cadenas: DATETIMEString (Por consideraciones de compatibilidad)

🔧 Consejos de Uso

  1. Convenciones de Nomenclatura: Elige camelCase o nomenclatura con guión bajo según los requisitos del proyecto
  2. Selección de Anotaciones: Puedes generar selectivamente anotaciones JPA, Lombok y de validación
  3. Configuración de Nombre de Paquete: Puedes personalizar el nombre del paquete para el código generado
  4. Soporte de Serialización: Opción para implementar la interfaz Serializable
  5. Manejo de Restricciones: Reconoce automáticamente claves primarias, restricciones únicas, valores por defecto, etc.
  6. Tipos de Tiempo: Elige mapeo de objetos de tiempo o cadenas según los requisitos del negocio

¡Esta herramienta de conversión SQL DDL a Entidad Java es un asistente poderoso para desarrolladores Java, haciendo que la creación de entidades de base de datos sea simple y eficiente!