TypeORM-এ নতুন রেকর্ড তৈরি করা
TypeORM হল একটি Object-Relational Mapping (ORM) লাইব্রেরি যা ডেটাবেসের সাথে সহজে কাজ করার জন্য TypeScript এবং JavaScript ব্যবহার করতে সহায়তা করে। TypeORM-এ নতুন রেকর্ড তৈরি করার জন্য সাধারণত Entity তৈরি করা হয় এবং সেই Entity এর মাধ্যমে ডেটাবেসে নতুন রেকর্ড save() বা insert() ফাংশন ব্যবহার করে যোগ করা হয়।
এখানে আমরা দেখব কিভাবে TypeORM ব্যবহার করে একটি নতুন রেকর্ড তৈরি করতে হয়।
১. Entity তৈরি করা
প্রথমে আপনাকে একটি Entity তৈরি করতে হবে। Entity হল TypeORM-এ একটি ক্লাস যা ডেটাবেস টেবিলের প্রতিনিধিত্ব করে। Entity এর মাধ্যমে আপনি ডেটাবেসে রেকর্ড তৈরি, পড়া, আপডেট এবং মুছে ফেলতে পারেন।
উদাহরণ: User Entity
import { Entity, PrimaryGeneratedColumn, Column } from "typeorm";
@Entity()
export class User {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@Column()
email: string;
}
এখানে, User একটি Entity যা ডেটাবেসের User টেবিলের প্রতিনিধিত্ব করে। এই Entity তে id, name, এবং email নামক ৩টি কলাম রয়েছে।
২. নতুন রেকর্ড তৈরি করা
TypeORM-এ নতুন রেকর্ড তৈরি করার জন্য save() ফাংশন ব্যবহার করা হয়। এই ফাংশনটি Entity এর একটি নতুন ইনস্ট্যান্স গ্রহণ করে এবং ডেটাবেসে সেই ইনস্ট্যান্সটি সংরক্ষণ করে।
উদাহরণ: User রেকর্ড তৈরি করা
import { createConnection } from "typeorm";
import { User } from "./User";
createConnection().then(async connection => {
// নতুন ইউজার তৈরি
const user = new User();
user.name = "John Doe";
user.email = "john.doe@example.com";
// ডেটাবেসে ইউজার সেভ করা
await connection.manager.save(user);
console.log("New user has been saved");
}).catch(error => console.log(error));
এখানে, প্রথমে User Entity এর একটি নতুন ইনস্ট্যান্স তৈরি করা হয়েছে। তারপর name এবং email ফিল্ডে ডেটা অ্যাসাইন করা হয়েছে। শেষে, connection.manager.save(user) ফাংশন দিয়ে ডেটাবেসে নতুন ইউজার রেকর্ড সেভ করা হয়েছে।
৩. Multiple Records Insert করা
একাধিক রেকর্ড সেভ করার জন্য আপনি save() ফাংশনের পরিবর্তে insert() ফাংশনও ব্যবহার করতে পারেন। insert() একবারে একাধিক রেকর্ড ইনসার্ট করতে সহায়ক।
উদাহরণ: একাধিক ইউজার রেকর্ড তৈরি করা
import { createConnection } from "typeorm";
import { User } from "./User";
createConnection().then(async connection => {
const user1 = new User();
user1.name = "Alice";
user1.email = "alice@example.com";
const user2 = new User();
user2.name = "Bob";
user2.email = "bob@example.com";
// একাধিক ইউজার সেভ করা
await connection.manager.insert(User, [user1, user2]);
console.log("Multiple users have been saved");
}).catch(error => console.log(error));
এখানে, আমরা দুইটি নতুন ইউজার তৈরি করেছি এবং connection.manager.insert() ফাংশনের মাধ্যমে একে একে দুজন ইউজার ডেটাবেসে ইনসার্ট করেছি।
৪. নতুন রেকর্ড সৃষ্টির পর রিটার্ন করা
save() ফাংশনটি সফলভাবে রেকর্ড সেভ করার পর, সেভ করা রেকর্ডটি রিটার্ন করে। এটি ডেটাবেস থেকে নতুন রেকর্ডের সম্পূর্ণ ডেটা (যদি তা অন্তর্ভুক্ত করা থাকে) ফিরিয়ে দেয়।
উদাহরণ: নতুন রেকর্ড তৈরি করে রিটার্ন করা
import { createConnection } from "typeorm";
import { User } from "./User";
createConnection().then(async connection => {
const user = new User();
user.name = "Charlie";
user.email = "charlie@example.com";
const savedUser = await connection.manager.save(user);
console.log("Saved user:", savedUser);
}).catch(error => console.log(error));
এখানে, savedUser তে সেভ করা রেকর্ডটি রিটার্ন করা হয়েছে, এবং এটি কনসোলে প্রিন্ট করা হয়েছে।
৫. নতুন রেকর্ডের Validations এবং Error Handling
আপনি চাইলে TypeORM-এ রেকর্ডের ডেটার জন্য ভ্যালিডেশন ব্যবহার করতে পারেন। এটি করতে class-validator নামক একটি প্যাকেজ ব্যবহার করা হয়, যা TypeORM-এর সাথে সহজেই সংযুক্ত করা যায়।
উদাহরণ: Validation ব্যবহার করা
প্রথমে, class-validator প্যাকেজ ইনস্টল করতে হবে:
npm install class-validator
এখন, TypeORM Entity তে Validation ডেকোরেটর ব্যবহার করা যাবে।
import { Entity, PrimaryGeneratedColumn, Column } from "typeorm";
import { IsEmail, Length } from "class-validator";
@Entity()
export class User {
@PrimaryGeneratedColumn()
id: number;
@Column()
@Length(3, 20)
name: string;
@Column()
@IsEmail()
email: string;
}
এখানে, name ফিল্ডের জন্য @Length এবং email ফিল্ডের জন্য @IsEmail ডেকোরেটর ব্যবহার করা হয়েছে যা ভ্যালিডেশন চালায়।
সারাংশ
TypeORM-এ নতুন রেকর্ড তৈরি করার জন্য save() এবং insert() ফাংশন ব্যবহৃত হয়। save() নতুন রেকর্ড তৈরি এবং মডিফাই করার জন্য ব্যবহৃত হয়, যখন insert() একাধিক রেকর্ড ইনসার্ট করতে ব্যবহৃত হয়। Entity-এ ডেটা ম্যানিপুলেশন, validations, এবং error handling এর মাধ্যমে আপনি সিস্টেমের কার্যকারিতা এবং রিডেবিলিটি আরও বাড়াতে পারেন। TypeORM আপনাকে ডেটাবেস ম্যানেজমেন্ট খুব সহজ এবং প্রোগ্রামেবলভাবে করতে সাহায্য করে।