Convertisseur SQL vers Java, C#, TypeScript, Go et Rust
Collez un CREATE TABLE MySQL, PostgreSQL ou T-SQL et obtenez le modèle en Java, C#, TypeScript, Go ou Rust.
CREATE TABLE vers classe C#, Java ou TypeScript : correspondance
L'outil lit une instruction CREATE TABLE, en extrait le nom de la table et chaque colonne (nom, type, NOT NULL), puis écrit le modèle correspondant : classe C# ou Java, interface TypeScript, struct Go ou Rust, ou un exemple d'enregistrement en JSON ou XML. Les noms passent en PascalCase ou camelCase et les colonnes sans NOT NULL deviennent facultatives.
Comment la table est lue
Les commentaires sont retirés, le nom suit CREATE TABLE (guillemets, accents graves ou crochets T-SQL acceptés, préfixe de schéma comme dbo. ou public. ignoré), puis le contenu entre parenthèses est découpé aux virgules, sauf celles de DECIMAL(10, 2). Les lignes PRIMARY KEY, FOREIGN KEY, CONSTRAINT, UNIQUE et INDEX sont ignorées. Une colonne est non nulle si elle porte NOT NULL ou PRIMARY KEY.
Exemple
La table d'exemple 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) donne 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; }
et en TypeScript userId: number; email?: string; createdAt?: Date; balance?: number;.
Limites à connaître
- Un type absent de la table de correspondance (BLOB, BYTEA, ENUM…) devient une chaîne ; UUID donne Guid en C# et UUID en Java, une chaîne dans les autres langages.
- Une seule table est traitée ; ni annotations, ni relations, ni accesseurs Java (un simple commentaire les signale).
- Go garde des types non nuls ; Rust utilise Option<T> pour les colonnes facultatives, sans dérivations ni imports.
- Les dates des exemples JSON et XML prennent l'heure du moment.
Relisez le code produit avant de l'intégrer. Pour simplement remettre en forme une requête, utilisez le formateur SQL.
Questions fréquentes
Quel type C# correspond à un DECIMAL ou un DATETIME SQL ?
L'outil traduit DECIMAL en decimal, DATETIME et DATE en DateTime, BOOLEAN et BIT en bool, VARCHAR, CHAR et TEXT en string. Une colonne sans NOT NULL reçoit un point d'interrogation (decimal?, DateTime?), sauf string, qui accepte déjà null. En Java, les mêmes colonnes deviennent BigDecimal, LocalDateTime, Boolean et String.
Quel type obtient une colonne BIGINT ?
BIGINT devient long en C#, Long en Java et i64 en Rust, ce qui évite un dépassement au-delà de 2 147 483 647. SMALLINT donne short, Short et i16, TINYINT byte, Byte et i8. L'outil cherche d'abord le type exact, puis le nom connu le plus long contenu dans le type : NVARCHAR est ainsi lu comme VARCHAR. En TypeScript, tous les entiers restent number.
L'outil lit-il les scripts SQL Server ?
Oui : les crochets sont acceptés autour des noms de table, de colonne et de type ([dbo].[Users], [Id] [bigint]), et le préfixe de schéma est ignoré, si bien que [dbo].[Users] donne la classe Users et public.orders la classe Orders. Les lignes CONSTRAINT, comme la clé primaire CLUSTERED, sont ignorées.
Comment sont nommées les propriétés générées ?
Les noms de colonnes en snake_case passent en PascalCase pour C# et Go (user_id devient UserId) et en camelCase pour Java et TypeScript (userId). Rust, JSON et XML gardent le nom d'origine. Go ajoute une balise json avec le nom de colonne d'origine.
L'outil est-il vraiment gratuit ?
Oui, l'intégralité des outils sur Kristools sont 100% gratuits et accessibles sans inscription.
Mes données sont-elles protégées ?
Oui. Tous les traitements sont effectués directement et en toute sécurité dans votre navigateur. Aucune donnée personnelle n'est envoyée vers nos serveurs.