TypeORM - Opérations de requête

La manipulation des données est utilisée pour gérer et afficher les données. Cette section explique comment accéder aux requêtes de base de données telles que les requêtes d'insertion, de mise à jour, de sélection et de suppression à l'aide de QueryBuilder. Passons en revue un par un en détail.

Créer une requête d'insertion

Créons une entité client comme suit -

Customer.ts

import {Entity, PrimaryGeneratedColumn, Column} from "typeorm"; 
@Entity() 
export class Customer {       

   @PrimaryGeneratedColumn() 
   id: number; 
   
   @Column() 
   name: string; 
   
   @Column() 
   age: number; 
}

Ajoutons les modifications suivantes dans index.ts comme suit -

index.ts

import "reflect-metadata"; 
import {createConnection} from "typeorm"; 
import {Customer} from "./entity/Customer"; 
import {getConnection} from "typeorm"; 

createConnection().then(async connection => { 
   await getConnection().createQueryBuilder()   .insert() 
      .into(Customer)  
      .values([ { name: "Adam",age:11}, 
         { name: "David",age:12} ]) .execute(); 
}).catch(error => console.log(error));

Maintenant, démarrez votre application en utilisant la commande ci-dessous -

npm start

Production

Vous pouvez voir la sortie suivante sur votre écran -

Maintenant, ouvrez votre serveur mysql, table insérée avec deux champs comme indiqué ci-dessous -

Créer une requête de mise à jour

Dernière section, nous avons inséré deux lignes de données. Voyons comment fonctionne la requête de mise à jour. Ajoutez les modifications suivantes dans index.ts comme suit -

import "reflect-metadata"; 
import {createConnection} from "typeorm"; 
import {Customer} from "./entity/Customer"; 
import {getConnection} from "typeorm";

createConnection().then(async connection => { 

await getConnection()         
   .createQueryBuilder() .update(Customer) 
   .set({ name: "Michael" }) .where("id = :id", { id: 1 }) .execute(); 
   console.log("data updated"); 
   
}).catch(error => console.log(error));

Maintenant, démarrez votre application en utilisant la commande ci-dessous -

npm start

Vous pouvez voir la sortie suivante sur votre écran -

La table Mysql est modifiée comme indiqué ci-dessous -

Créer une requête de sélection

selectLa requête est utilisée pour afficher les enregistrements de la table. Ajoutons le code suivant dansindex.ts comme suit -

index.ts

import "reflect-metadata"; 
import {createConnection} from "typeorm"; 
import {Customer} from "./entity/Customer"; 

createConnection().then(async connection => { 

   console.log("Display records from Customer table..."); 
   const cus = new Customer();

   console.log("Loading customers from the database..."); 
   const customers = await connection.manager.find(Customer); console.log("Loaded users: ", customers); 
}).catch(error => console.log(error));

Vous pouvez voir la sortie suivante sur votre écran -

où expression

Ajoutons l'expression where dans la requête pour filtrer les clients. L'exemple de code est le suivant -

import "reflect-metadata"; 
import {createConnection} from "typeorm"; 
import {Customer} from "./entity/Customer"; 
import {getConnection} from "typeorm";

createConnection().then(async connection => { 
   const customer = await getConnection() .createQueryBuilder() .select("cus") 
   .from(Customer, "cus") .where("cus.id = :id", { id: 1 }) .getOne(); 
   
   console.log(customer); 
})
.catch(error => console.log(error));

Le programme ci-dessus renverra les premiers enregistrements d'identification. Vous pouvez voir la sortie suivante sur votre écran,

De même, vous pouvez également essayer d'autres expressions.

Créer une requête de suppression

Dernière section, nous avons inséré, mis à jour et sélectionné des données. Voyons comment fonctionne la requête de suppression. Ajoutez les modifications suivantes dans index.ts comme suit -

import "reflect-metadata"; 
import {createConnection} from "typeorm"; 
import {Customer} from "./entity/Customer"; 
import {getConnection} from "typeorm"; 

createConnection().then(async connection => { 
   await getConnection() .createQueryBuilder() 
   .delete() 
   .from(Customer) 
   .where("id = :id", { id: 1 }) .execute();
console.log("data deleted"); }).catch(error => console.log(error));

Vous pouvez voir la sortie suivante sur votre écran -

Et votre table mysql est modifiée comme suit -