Outras ferramentas
Ferramenta de Conversão SQL DDL para Entidade Java
Converte declarações SQL DDL em classes de entidade Java com suporte a anotações JPA, Lombok e validação
Mapeamento de Tipos de Dados
Tipos de String
- 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 Tempo
- DATETIME, TIMESTAMP → LocalDateTime
- DATE → LocalDate
- TIME → LocalTime
Outros Tipos
- BOOLEAN, BOOL → Boolean
- BLOB, BINARY → byte[]
- JSON → String
Convenção de Nomenclatura
user_name → userNameaccess_date → accessDateuser_name → user_nameaccess_date → access_dateMapeamento de Tipos de Tempo
DATETIME → LocalDateTimeDATE → LocalDateTIME → LocalTimeDATETIME → StringDATE → StringTIME → StringVisao geral da ferramenta: Ferramenta de Conversão SQL DDL para Entidade Java
No desenvolvimento Java, especialmente ao usar Spring Boot e frameworks JPA, frequentemente há necessidade de criar classes de entidade baseadas em estruturas de tabelas de banco de dados. Escrever manualmente essas classes de entidade não é apenas demorado, mas também propenso a erros. Esta ferramenta converte automaticamente declarações SQL DDL em classes de entidade Java padrão, melhorando significativamente a eficiência de desenvolvimento.
O que é Ferramenta de Conversão SQL DDL para Entidade Java?
Ferramenta de Conversão SQL DDL para Entidade Java converte SQL DDL em Java entity e gera uma saída pronta para uso.
Como usar
- Cole o conteúdo SQL DDL ou informe parâmetros.
- Escolha Java entity como saída e ajuste as opções.
- Revise o resultado e copie ou faça o download.
Casos de uso comuns
- Migração de formato SQL DDL↔Java entity
- Usar dados SQL DDL em fluxos Java entity ou geração de código
- Validar a conversão contra especificações
❓ Perguntas frequentes
P1: Por que o resultado está incorreto?
R: Verifique o formato de entrada e as opções, e teste o exemplo se houver.
P2: E se a entrada for muito grande?
R: Divida os dados em partes menores para obter resultados mais estáveis.
P3: Como salvo a saída?
R: Use os botões de copiar ou baixar se a ferramenta oferecer.
✨ Recursos Principais
- 🔄 Conversão Inteligente: Analisa automaticamente declarações CREATE TABLE e gera classes de entidade Java correspondentes
- 🏷️ Suporte a Múltiplas Anotações: Gera anotações JPA, Lombok e Bean Validation
- 📊 Mapeamento de Tipos: Mapeamento completo de tipos de dados SQL para tipos Java
- ⚙️ Opções Configuráveis: Personaliza nome do pacote, geração de anotações, convenções de nomenclatura e mapeamento de tipos de tempo
- 🔧 Tratamento de Restrições: Trata automaticamente chaves primárias, chaves estrangeiras, restrições únicas, valores padrão, etc.
- 📝 Padrões de Código: Gera código que segue as convenções de nomenclatura Java
- 🎯 Flexibilidade de Nomenclatura: Suporte para estilos de nomenclatura camelCase e sublinhado
- ⏰ Escolha de Tipos de Tempo: Opção para mapear campos de tempo para objetos de tempo ou strings
📖 Exemplos de Uso
Conversão de Estrutura de Tabela 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
);
Entidade Java de Saída:
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;
}
📐 Tabela de Mapeamento de Tipos de Dados
Mapeamento de Tipos MySQL
| Tipo SQL | Tipo Java | Descrição |
|---|---|---|
| VARCHAR, CHAR, TEXT | String | Tipos de string |
| INT, INTEGER | Integer | Inteiro de 32 bits |
| BIGINT | Long | Inteiro de 64 bits |
| SMALLINT | Short | Inteiro de 16 bits |
| TINYINT | Byte | Inteiro de 8 bits |
| DECIMAL, NUMERIC | BigDecimal | Decimal de alta precisão |
| FLOAT | Float | Ponto flutuante de precisão simples |
| DOUBLE | Double | Ponto flutuante de dupla precisão |
| BOOLEAN, BOOL | Boolean | Valor booleano |
| DATETIME, TIMESTAMP | LocalDateTime | Data e hora |
| DATE | LocalDate | Apenas data |
| TIME | LocalTime | Apenas hora |
| JSON | String | Dados JSON |
| BLOB, BINARY | byte[] | Dados binários |
⚙️ Opções de Configuração
Configuração de Anotações
- Gerar Anotações JPA: Adicionar
@Entity,@Table,@Column,@Ide outras anotações padrão JPA - Gerar Anotações Lombok: Adicionar anotações
@Data,@NoArgsConstructor,@AllArgsConstructor - Gerar Anotações de Validação: Adicionar
@NotNull,@Sizee outras anotações Bean Validation - Implementar Interface Serializable: Fazer as classes geradas implementarem a interface de serialização
Configuração de Convenção de Nomenclatura
- Habilitar CamelCase:
user_name→userName(Recomendado, segue convenções Java) - Manter Sublinhado:
user_name→user_name(Para requisitos especiais)
Configuração de Mapeamento de Tipos de Tempo
- Mapear para Objetos de Tempo:
DATETIME→LocalDateTime(Recomendado, tipo seguro) - Mapear para Strings:
DATETIME→String(Por considerações de compatibilidade)
🔧 Dicas de Uso
- Convenções de Nomenclatura: Escolha camelCase ou nomenclatura com sublinhado baseado nos requisitos do projeto
- Seleção de Anotações: Você pode gerar seletivamente anotações JPA, Lombok e de validação
- Configuração de Nome de Pacote: Você pode personalizar o nome do pacote para o código gerado
- Suporte à Serialização: Opção para implementar a interface Serializable
- Tratamento de Restrições: Reconhece automaticamente chaves primárias, restrições únicas, valores padrão, etc.
- Tipos de Tempo: Escolha mapeamento de objetos de tempo ou strings baseado nos requisitos do negócio
Esta ferramenta de conversão SQL DDL para Entidade Java é um assistente poderoso para desenvolvedores Java, tornando a criação de entidades de banco de dados simples e eficiente!