How to use TypeORM

How to use TypeORM

TypeORM is an Object-Relational Mapping (ORM) tool that can be used to simplify the process of working with databases in your JavaScript applications. It allows you to work with your database using JavaScript objects and provides a simple API for storing, retrieving, and updating data. With TypeORM, you can write simple and elegant code that is easy to understand and maintain, while still taking advantage of the powerful features of your database. TypeORM supports a wide range of databases, including popular ones like MySQL, PostgreSQL, and SQLite, as well as less well-known ones like MariaDB and Oracle.

How to use typeorm

Here is a brief overview of how to use TypeORM in a JavaScript application:

Install TypeORM and its dependencies:

npm install typeorm reflect-metadata

Create an Entity:

An Entity is a class that represents a table in your database. You can create an Entity by decorating a class with the @Entity decorator and specifying the name of the table that it maps to.

import { Entity, Column } from 'typeorm';

@Entity('users')
export class User {
  @Column()
  name: string;

  @Column()
  email: string;
}

Create a Connection:

A Connection is a single database connection that your application uses to communicate with your database. You can create a Connection by calling the createConnection function and passing it an object containing your database configuration.

import { createConnection } from 'typeorm';

createConnection({
  type: 'mysql',
  host: 'localhost',
  port: 3306,
  username: 'root',
  password: 'password',
  database: 'my_database',
  entities: [User],
  synchronize: true,
  logging: false
});

Use the Repository:

A Repository is a class that provides an API for performing CRUD (create, read, update, delete) operations on a specific table in your database. You can get a Repository instance by calling the getRepository function and passing it the Entity class that you want to perform operations on.

import { getRepository } from 'typeorm';

const userRepository = getRepository(User);

// Create a new user
const user = new User();
user.name = 'John Smith';
user.email = '[email protected]';
await userRepository.save(user);

// Find all users
const users = await userRepository.find();

// Update a user
user.name = 'John Doe';
await userRepository.save(user);

// Delete a user
await userRepository.delete(user);

I hope this gives you a good idea of how to get started with TypeORM. There is much more that you can do with this library, so I recommend taking a look at the TypeORM documentation for more information.

Here are a few more things that you can do with TypeORM:

  • Define Relationships: You can define relationships between your Entities using decorators like @OneToOne, @OneToMany, and @ManyToMany. These decorators allow you to specify how your tables are related to each other, which can be useful for storing and querying data that is related in some way.

  • Use Query Builders: TypeORM provides a powerful Query Builder API that allows you to construct complex SQL queries in a simple and intuitive way. You can use the Query Builder to perform operations like selecting specific columns, filtering records, grouping and ordering results, and joining tables.

  • Use Migrations: Migrations are a way to manage changes to your database schema over time. With TypeORM, you can create and run migrations to update your database schema to match your Entity definitions. This can be useful for keeping your database in sync with your codebase as you make changes to your application.

  • Use Custom Repositories: If you want to create custom methods for interacting with your database, you can define a custom Repository class and use it in place of the default Repository provided by TypeORM. This can be useful for creating reusable logic that can be shared across multiple Entities.