TypeORM - Operazioni di query

La manipolazione dei dati viene utilizzata per gestire e visualizzare i dati. Questa sezione spiega come accedere alle query del database come inserire, aggiornare, selezionare ed eliminare le query utilizzando QueryBuilder. Vediamone uno per uno in dettaglio.

Crea query di inserimento

Creiamo un'entità cliente come segue:

Customer.ts

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

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

Aggiungiamo le seguenti modifiche in index.ts come segue:

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));

Ora avvia la tua applicazione usando il comando seguente:

npm start

Produzione

Potresti vedere il seguente output sullo schermo:

Ora apri il tuo server mysql, tabella inserita con due campi come mostrato di seguito -

Crea query di aggiornamento

Nell'ultima sezione, abbiamo inserito due righe di dati. Controlliamo come funziona la query di aggiornamento. Aggiungi le seguenti modifiche in index.ts come segue:

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));

Ora avvia la tua applicazione usando il comando seguente:

npm start

Potresti vedere il seguente output sullo schermo:

La tabella Mysql viene modificata come mostrato di seguito -

Crea query di selezione

selectquery viene utilizzata per visualizzare i record dalla tabella. Aggiungiamo il seguente codice inindex.ts come segue -

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));

Potresti vedere il seguente output sullo schermo:

dove espressione

Aggiungiamo l'espressione where nella query per filtrare i clienti. Il codice di esempio è il seguente:

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));

Il programma precedente restituirà i primi record di identificazione. Potresti vedere il seguente output sullo schermo,

Allo stesso modo, puoi provare anche altre espressioni.

Crea query di eliminazione

Nell'ultima sezione abbiamo inserito, aggiornato e selezionato i dati. Controlliamo come funziona l'eliminazione della query. Aggiungi le seguenti modifiche in index.ts come segue:

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));

Potresti vedere il seguente output sullo schermo:

E la tua tabella mysql viene modificata come segue: