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 -