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: