TypeORM - Operações de consulta
A manipulação de dados é usada para gerenciar e visualizar dados. Esta seção explica como acessar consultas de banco de dados como inserir, atualizar, selecionar e excluir consultas usando QueryBuilder. Vamos examinar um por um em detalhes.
Criar consulta de inserção
Vamos criar uma entidade Cliente da seguinte maneira -
Customer.ts
import {Entity, PrimaryGeneratedColumn, Column} from "typeorm";
@Entity()
export class Customer {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@Column()
age: number;
}
Vamos adicionar as seguintes alterações em index.ts da seguinte maneira -
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));
Agora, inicie seu aplicativo usando o comando abaixo -
npm start
Resultado
Você pode ver a seguinte saída em sua tela -
Agora abra seu servidor mysql, tabela inserida com dois campos conforme mostrado abaixo -
Criar consulta de atualização
Na última seção, inserimos duas linhas de dados. Vamos verificar como funciona a consulta de atualização. Adicione as seguintes alterações em index.ts da seguinte forma -
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));
Agora, inicie seu aplicativo usando o comando abaixo -
npm start
Você pode ver a seguinte saída em sua tela -
A tabela Mysql é modificada conforme mostrado abaixo -
Construir consulta selecionada
selectconsulta é usada para exibir os registros da tabela. Vamos adicionar o seguinte código emindex.ts como 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));
Você pode ver a seguinte saída em sua tela -
onde expressão
Vamos adicionar a expressão where na consulta para filtrar os clientes. O código de amostra é o seguinte -
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));
O programa acima retornará os primeiros registros de id. Você pode ver a seguinte saída em sua tela,
Da mesma forma, você pode tentar outras expressões também.
Construir consulta de exclusão
Na última seção, inserimos, atualizamos e selecionamos dados. Vamos verificar como a consulta de exclusão funciona. Adicione as seguintes alterações em index.ts da seguinte forma -
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));
Você pode ver a seguinte saída em sua tela -
E sua tabela mysql é modificada da seguinte forma -