TypeORM Veritabanına Veri Kaydetme

Herkese merhaba, NodeJS yazılarımıza kaldığımız yerden devam ediyoruz. Bu yazımızda TypeORM ile veritabanına veri kaydetmeyi anlatacağım. Hadi başlayalım !
Table of Contents
TypeORM, TypeScript ile yazılmış bir ORM (Object-Relational Mapping) kütüphanesidir ve Node.js tabanlı uygulamalarda kullanılan bir veritabanı yönetim aracıdır. Bu makalede, TypeORM kullanarak veritabanına veri kaydetmenin nasıl yapılacağına ilişkin kod örnekleri verilecektir.
TypeORM Kurulumu
Öncelikle, TypeORM’ü kurmak için aşağıdaki komutu kullanabilirsiniz:
npm install typeorm reflect-metadata mysql
Bu komutla, TypeORM, TypeScript’te metadata desteği sağlayan reflect-metadata paketi ve kullanacağımız veritabanı sürücüsü olan mysql kurulacaktır.
Veritabanına Bağlanma
TypeORM’ün kullanımı için, öncelikle ConnectionOptions adlı bir yapı tanımlayarak veritabanı bağlantı ayarlarımızı belirlememiz gerekiyor. Aşağıdaki örnek, mysql veritabanını kullanacak şekilde yapılandırılmış bir bağlantı seçeneği göstermektedir:
const connectionOptions = {
type: 'mysql',
host: 'localhost',
port: 3306,
username: 'root',
password: 'mypassword',
database: 'mydatabase',
entities: [],
synchronize: true,
};
Bu yapıda, type özelliği, kullanacağımız veritabanı türünü belirtirken, host, port, username, password ve database özellikleri, veritabanı sunucusuna bağlanmak için gereken bilgileri içermektedir. entities özelliği, veritabanında yer alacak entity sınıflarının listesi olarak belirtilirken, synchronize özelliği, herhangi bir değişiklik olduğunda otomatik olarak veritabanını güncelleyecek şekilde yapılandırılır.
Örnek Tablo Oluşturma
Bir entity sınıfı, veritabanında bir tabloya karşılık gelir. Aşağıdaki örnek, User adlı bir entity sınıfı oluşturur:
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
@Entity()
export class User {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@Column()
email: string;
@Column()
password: string;
}
Bu sınıf, @Entity dekoratörü ile işaretlenir ve veritabanında users adında bir tabloya karşılık gelir. @PrimaryGeneratedColumn dekoratörü, id özelliğinin birincil anahtar olarak kullanılacağını belirtirken, @Column dekoratörleri, name, email ve password özelliklerinin veritabanı sütunlarına karşılık geleceğini belirtir.
Veri Kaydetme
Bir entity sınıfının veritabanına kaydedilmesi için, getRepository() yöntemi kullanılabilir. Aşağıdaki kod örneği, User entity sınıfını kullanarak bir kullanıcı kaydetmektedir:
import { createConnection } from 'typeorm';
import { User } from './user.entity';
createConnection(connectionOptions)
.then(async (connection) => {
const userRepository = connection.getRepository(User);
const user = new User();
user.name = 'John Doe';
user.email = 'john.doe@example.com';
user.password = 'password123';
await userRepository.save(user);
console.log('User saved successfully!');
})
.catch((error) => console.log(error));
Bu örnekte, createConnection() yöntemi, veritabanına bağlanmak için kullanılır. getRepository() yöntemi, User entity sınıfının veritabanıyla iletişim kurmasını sağlar. Ardından, save() yöntemi kullanılarak, yeni bir kullanıcı oluşturulur ve veritabanına kaydedilir.
Eklenen Kaydı Güncelleme
TypeORM’ün özelliklerinden biri, save() yöntemi kullanarak verileri değiştirmek için aynı entity nesnesini güncellemek mümkündür. Örneğin, aşağıdaki kod, önceki örnekte oluşturulan kullanıcının adını güncellemektedir:
user.name = 'Jane Doe';
await userRepository.save(user);
Eklenen Kaydı Silme
Ayrıca, remove() yöntemi kullanılarak bir entity nesnesi veritabanından silinebilir. Aşağıdaki örnek, önceki örnekte oluşturulan kullanıcıyı silmektedir:
await userRepository.remove(user);
console.log('User deleted successfully!');
Bu makalede, TypeORM kullanarak veritabanına veri kaydetmenin nasıl yapılacağına dair kod örnekleri verilmiştir. Entity sınıfları oluşturmak, getRepository() yöntemini kullanarak veritabanıyla iletişim kurmak, save() ve remove() yöntemleriyle verileri değiştirmek veya silmek mümkündür. TypeORM’ün daha fazla özelliği ve seçeneği mevcuttur ve bunları kullanarak veritabanı yönetim işlemlerini daha da geliştirebilirsiniz.
Evet TypeORM ile veritabanına veri kaydetme bu şekilde yapılmakta. Tüm NodeJS yazılarımıza buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.