TypeORM - Operaciones de consulta

La manipulación de datos se utiliza para administrar y ver datos. Esta sección explica cómo acceder a las consultas de la base de datos, como insertar, actualizar, seleccionar y eliminar consultas utilizando QueryBuilder. Repasemos uno por uno en detalle.

Crear consulta de inserción

Creemos una entidad de Cliente de la siguiente manera:

Customer.ts

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

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

Agreguemos los siguientes cambios en index.ts de la siguiente manera:

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

Ahora, inicie su aplicación usando el siguiente comando:

npm start

Salida

Podrías ver el siguiente resultado en tu pantalla:

Ahora abra su servidor mysql, tabla insertada con dos campos como se muestra a continuación -

Crear consulta de actualización

Última sección, hemos insertado dos filas de datos. Veamos cómo funciona la consulta de actualización. Agregue los siguientes cambios en index.ts de la siguiente manera:

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

Ahora, inicie su aplicación usando el siguiente comando:

npm start

Podrías ver el siguiente resultado en tu pantalla:

La tabla Mysql se modifica como se muestra a continuación:

Crear consulta de selección

selectLa consulta se utiliza para mostrar los registros de la tabla. Agreguemos el siguiente código enindex.ts como sigue -

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

Podrías ver el siguiente resultado en tu pantalla:

donde expresión

Agreguemos la expresión where en la consulta para filtrar los clientes. El código de muestra es el siguiente:

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

El programa anterior devolverá los primeros registros de identificación. Podrías ver el siguiente resultado en tu pantalla,

Del mismo modo, también puede probar otras expresiones.

Crear consulta de eliminación

Última sección, hemos insertado, actualizado y seleccionado datos. Veamos cómo funciona la consulta de eliminación. Agregue los siguientes cambios en index.ts de la siguiente manera:

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

Podrías ver el siguiente resultado en tu pantalla:

Y su tabla mysql se modifica de la siguiente manera: