Conversor de SQL a Java, C#, TypeScript, Go y Rust
Pegue un CREATE TABLE de MySQL, PostgreSQL o T-SQL y obtenga el modelo en Java, C#, TypeScript, Go o Rust.
De CREATE TABLE a clase C#, Java o TypeScript: tipos
La herramienta lee una instrucción CREATE TABLE, extrae el nombre de la tabla y cada columna (nombre, tipo, NOT NULL) y escribe el modelo correspondiente: clase C# o Java, interfaz TypeScript, struct Go o Rust, o un registro de ejemplo en JSON o XML. Los nombres pasan a PascalCase o camelCase y las columnas sin NOT NULL se vuelven opcionales.
Cómo se lee la tabla
Se eliminan los comentarios, el nombre sigue a CREATE TABLE (se aceptan comillas dobles, acentos graves o corchetes de T-SQL, y se ignora el prefijo de esquema como dbo. o public.) y el contenido entre paréntesis se divide por comas, salvo las de DECIMAL(10, 2). Se ignoran las líneas PRIMARY KEY, FOREIGN KEY, CONSTRAINT, UNIQUE e INDEX. Una columna es no nula si lleva NOT NULL o PRIMARY KEY.
Ejemplo
La tabla de ejemplo 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) da en 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; }
y en TypeScript userId: number; email?: string; createdAt?: Date; balance?: number;.
Límites conocidos
- Un tipo que no figura en la tabla de correspondencia (BLOB, BYTEA, ENUM…) se convierte en cadena; UUID da Guid en C# y UUID en Java, y una cadena en los demás lenguajes.
- Solo se trata una tabla; sin anotaciones, relaciones ni getters de Java (un comentario marca su lugar).
- Go mantiene tipos no nulos; Rust usa Option<T> en las columnas opcionales, sin derives ni imports.
Revise el código generado antes de usarlo. Para dar formato a una consulta, use el formateador SQL.
Preguntas frecuentes
¿Qué tipo de C# corresponde a un DECIMAL o un DATETIME de SQL?
La herramienta convierte DECIMAL en decimal, DATETIME y DATE en DateTime, BOOLEAN y BIT en bool, y VARCHAR, CHAR y TEXT en string. Una columna sin NOT NULL recibe un signo de interrogación (decimal?, DateTime?), salvo string, que ya admite null. En Java, las mismas columnas pasan a BigDecimal, LocalDateTime, Boolean y String.
¿Qué tipo recibe una columna BIGINT?
BIGINT pasa a long en C#, Long en Java e i64 en Rust, lo que evita el desbordamiento por encima de 2.147.483.647. SMALLINT da short, Short e i16, y TINYINT byte, Byte e i8. La herramienta busca primero el tipo exacto y después el nombre conocido más largo contenido en el tipo: así NVARCHAR se lee como VARCHAR. En TypeScript todos los enteros quedan como number.
¿Lee la herramienta los scripts de SQL Server?
Sí: se aceptan corchetes alrededor de los nombres de tabla, columna y tipo ([dbo].[Users], [Id] [bigint]) y se ignora el prefijo de esquema, de modo que [dbo].[Users] da la clase Users y public.orders la clase Orders. Las líneas CONSTRAINT, como una clave primaria CLUSTERED, se omiten.
¿Cómo se nombran las propiedades generadas?
Los nombres de columna en snake_case pasan a PascalCase en C# y Go (user_id se convierte en UserId) y a camelCase en Java y TypeScript (userId). Rust, JSON y XML conservan el nombre original. Go añade una etiqueta json con el nombre de columna original.
¿La herramienta es realmente gratuita?
Sí, todas las herramientas en Kristools son 100% gratuitas y accesibles sin registro.
¿Están protegidos mis datos?
Sí. Todo el procesamiento se realiza de forma segura y directa en tu navegador. No se envían datos personales a nuestros servidores.