Инструмент Конвертации SQL DDL в Java Entity

Преобразует 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

Соглашение Именования

CamelCase:user_name → userNameaccess_date → accessDate
Подчеркивание:user_name → user_nameaccess_date → access_date

Маппинг Временных Типов

Временные Объекты Включены:DATETIME → LocalDateTimeDATE → LocalDateTIME → LocalTime
Временные Объекты Отключены:DATETIME → StringDATE → StringTIME → String

Обзор инструмента: Инструмент Конвертации SQL DDL в Java Entity

В разработке Java, особенно при использовании Spring Boot и JPA фреймворков, часто возникает необходимость создания классов сущностей на основе структур таблиц базы данных. Ручное написание этих классов сущностей не только отнимает время, но и подвержено ошибкам. Этот инструмент автоматически конвертирует SQL DDL операторы в стандартные Java классы сущностей, значительно повышая эффективность разработки.

Что такое Инструмент Конвертации SQL DDL в Java Entity

Инструмент Конвертации SQL DDL в Java Entity быстро конвертирует SQL DDL в Java entity и выдает готовый результат.

Как пользоваться

  1. Вставьте данные SQL DDL или укажите параметры.
  2. Выберите выход Java entity и настройте опции.
  3. Проверьте результат и скопируйте или скачайте.

Частые сценарии

  • Миграция формата SQL DDL↔Java entity
  • Использование данных SQL DDL в Java entity-процессах или генерации кода
  • Проверка конвертации по спецификациям

❓ Частые вопросы

В1: Конвертация не удалась или пусто?
О: Проверьте, что вход SQL DDL валиден и полный.

В2: Результат выглядит иначе?
О: Формат может измениться по правилам Java entity.

В3: Как обрабатывать пакетно?
О: Делите на небольшие части для стабильности.

✨ Основные Возможности

  • 🔄 Умная Конвертация: Автоматически анализирует операторы CREATE TABLE и генерирует соответствующие Java классы сущностей
  • 🏷️ Поддержка Множественных Аннотаций: Генерирует аннотации JPA, Lombok и Bean Validation
  • 📊 Маппинг Типов: Полное сопоставление типов данных SQL с типами Java
  • ⚙️ Настраиваемые Опции: Настройка имени пакета, генерации аннотаций, соглашений именования и маппинга временных типов
  • 🔧 Обработка Ограничений: Автоматически обрабатывает первичные ключи, внешние ключи, уникальные ограничения, значения по умолчанию и т.д.
  • 📝 Стандарты Кода: Генерирует код, следующий соглашениям именования Java
  • 🎯 Гибкость Именования: Поддержка стилей именования camelCase и подчеркивания
  • Выбор Временных Типов: Опция для маппинга временных полей в временные объекты или строки

📖 Примеры Использования

Конвертация Базовой Структуры Таблицы

Входной 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: Сделать генерируемые классы реализующими интерфейс сериализации

Конфигурация Соглашения Именования

  • Включить CamelCase: user_nameuserName (Рекомендуется, следует Java соглашениям)
  • Сохранить Подчеркивание: user_nameuser_name (Для специальных требований)

Конфигурация Маппинга Временных Типов

  • Маппинг в Временные Объекты: DATETIMELocalDateTime (Рекомендуется, типобезопасно)
  • Маппинг в Строки: DATETIMEString (Для соображений совместимости)

🔧 Советы по Использованию

  1. Соглашения Именования: Выбирайте camelCase или именование с подчеркиванием в зависимости от требований проекта
  2. Выбор Аннотаций: Вы можете выборочно генерировать аннотации JPA, Lombok и валидации
  3. Настройка Имени Пакета: Вы можете настроить имя пакета для генерируемого кода
  4. Поддержка Сериализации: Опция для реализации интерфейса Serializable
  5. Обработка Ограничений: Автоматически распознает первичные ключи, уникальные ограничения, значения по умолчанию и т.д.
  6. Временные Типы: Выбирайте маппинг временных объектов или строк в зависимости от бизнес-требований

Этот инструмент конвертации SQL DDL в Java Entity является мощным помощником для Java разработчиков, делая создание сущностей базы данных простым и эффективным!