Convertitore SQL in Java, C#, TypeScript, Go e Rust

Incolla un CREATE TABLE MySQL, PostgreSQL o T-SQL e ottieni il modello di dati corrispondente in Java, C#, TypeScript, Go o Rust.

CREATE TABLE in classe C#, Java o TypeScript: corrispondenze

Lo strumento legge un'istruzione CREATE TABLE, ne estrae il nome della tabella e ogni colonna (nome, tipo, NOT NULL), poi scrive il modello corrispondente: classe C# o Java, interfaccia TypeScript, struct Go o Rust, oppure un esempio di record in JSON o XML. I nomi passano in PascalCase o camelCase e le colonne senza NOT NULL diventano facoltative.

Come viene letta la tabella

I commenti vengono rimossi, il nome segue CREATE TABLE (virgolette, apici inversi o parentesi quadre T-SQL accettati, prefisso di schema come dbo. o public. ignorato), poi il contenuto tra parentesi viene diviso alle virgole, tranne quelle di DECIMAL(10, 2). Le righe PRIMARY KEY, FOREIGN KEY, CONSTRAINT, UNIQUE e INDEX sono ignorate. Una colonna è non nulla se ha NOT NULL o PRIMARY KEY.

Esempio

La tabella di esempio Users (user_id INT PRIMARY KEY, username VARCHAR(50) NOT NULL, email VARCHAR(100), is_active BOOLEAN, created_at DATETIME, balance DECIMAL(10, 2), bio TEXT) produce in C#:
public int UserId { get; set; }
public string Username { get; set; }
public bool? IsActive { get; set; }
public DateTime? CreatedAt { get; set; }
public decimal? Balance { get; set; }
e in TypeScript userId: number; email?: string; createdAt?: Date; balance?: number;.

Limiti da conoscere

  • Un tipo assente dalla tabella di corrispondenza (BLOB, BYTEA, ENUM…) diventa una stringa; UUID produce Guid in C# e UUID in Java, una stringa negli altri linguaggi.
  • Viene elaborata una sola tabella; niente annotazioni, relazioni o getter e setter Java (un semplice commento li segnala).
  • Go mantiene tipi non nulli; Rust usa Option<T> per le colonne facoltative, senza derive né import.
  • Le date degli esempi JSON e XML prendono l'ora del momento.

Rileggi il codice prodotto prima di integrarlo. Per rimettere semplicemente in forma una query, usa il formattatore SQL.

Domande frequenti

Quale tipo C# corrisponde a un DECIMAL o a un DATETIME SQL?

Lo strumento traduce DECIMAL in decimal, DATETIME e DATE in DateTime, BOOLEAN e BIT in bool, VARCHAR, CHAR e TEXT in string. Una colonna senza NOT NULL riceve un punto interrogativo (decimal?, DateTime?), tranne string, che accetta già null. In Java, le stesse colonne diventano BigDecimal, LocalDateTime, Boolean e String.

Quale tipo ottiene una colonna BIGINT?

BIGINT diventa long in C#, Long in Java e i64 in Rust, il che evita un overflow oltre 2.147.483.647. SMALLINT produce short, Short e i16, TINYINT byte, Byte e i8. Lo strumento cerca prima il tipo esatto, poi il nome noto più lungo contenuto nel tipo: NVARCHAR viene così letto come VARCHAR. In TypeScript, tutti gli interi restano number.

Lo strumento legge gli script SQL Server?

Sì: le parentesi quadre sono accettate attorno ai nomi di tabella, colonna e tipo ([dbo].[Users], [Id] [bigint]), e il prefisso di schema è ignorato, per cui [dbo].[Users] produce la classe Users e public.orders la classe Orders. Le righe CONSTRAINT, come la chiave primaria CLUSTERED, sono ignorate.

Come vengono chiamate le proprietà generate?

I nomi di colonna in snake_case passano in PascalCase per C# e Go (user_id diventa UserId) e in camelCase per Java e TypeScript (userId). Rust, JSON e XML mantengono il nome originale. Go aggiunge un tag json con il nome originale della colonna.

Lo strumento è davvero gratuito?

Sì, tutti gli strumenti di Kristools sono gratuiti al 100% e accessibili senza registrazione.

I miei dati sono protetti?

Sì. Tutte le elaborazioni vengono eseguite direttamente e in modo sicuro nel tuo browser. Nessun dato personale viene inviato ai nostri server.