Update: রেকর্ড আপডেট করা

CRUD Operations (তৈরি, পড়া, আপডেট, মুছে ফেলা) - টাইপওআরএম (TypeORM) - Web Development

368

TypeORM-এ রেকর্ড আপডেট করা

TypeORM-এ ডেটাবেসের রেকর্ড আপডেট করার জন্য কয়েকটি পদ্ধতি রয়েছে, যেগুলির মাধ্যমে আপনি সুনির্দিষ্ট রেকর্ড বা একাধিক রেকর্ড সহজে আপডেট করতে পারেন। TypeORM-এর রেকর্ড আপডেট করতে সবচেয়ে সাধারণ পদ্ধতি হল Repository API ব্যবহার করা। এছাড়া QueryBuilder ব্যবহার করেও আপডেট করা যায়, যা আরো কাস্টমাইজড এবং জটিল কুয়েরি প্রয়োগ করতে সহায়তা করে।

Repository API ব্যবহার করে রেকর্ড আপডেট করা

Repository TypeORM-এ একটি Entity এর জন্য ডেটাবেস অপারেশন (CRUD) পরিচালনা করতে ব্যবহৃত হয়। রেকর্ড আপডেট করার জন্য save() অথবা update() মেথড ব্যবহার করা যেতে পারে।

১. save() মেথড ব্যবহার করে রেকর্ড আপডেট

save() মেথড ব্যবহার করলে এটি যদি রেকর্ডটি নতুন হয় তবে সেই রেকর্ডটি ইনসার্ট করবে এবং যদি রেকর্ডটি আগে থেকে ডেটাবেসে থাকে তবে এটি সেই রেকর্ডটি আপডেট করবে। এটি একটি সহজ এবং সাধারণ পদ্ধতি।

উদাহরণ:

ধরা যাক, আমাদের কাছে একটি User Entity রয়েছে এবং আমরা id এর মাধ্যমে ব্যবহারকারীর নাম আপডেট করতে চাই।

import { AppDataSource } from './data-source';
import { User } from './entity/User';

async function updateUser(id: number, newName: string) {
  // User Repository নিয়ে আসা
  const userRepository = AppDataSource.getRepository(User);

  // রেকর্ডটি খোঁজা
  const user = await userRepository.findOneBy({ id });

  if (user) {
    // রেকর্ড আপডেট করা
    user.name = newName;

    // save() ব্যবহার করে আপডেট করা
    await userRepository.save(user);
    console.log(`User with ID ${id} has been updated.`);
  } else {
    console.log(`User with ID ${id} not found.`);
  }
}

এখানে:

  • findOneBy(): এটি ব্যবহার করে নির্দিষ্ট id দিয়ে User রেকর্ডটি খোঁজা হয়েছে।
  • save(): এটি রেকর্ড আপডেট করার জন্য ব্যবহৃত হয়েছে। যদি রেকর্ডটি পূর্বে বিদ্যমান থাকে, তবে এটি সেই রেকর্ডটিকে আপডেট করবে।

২. update() মেথড ব্যবহার করে রেকর্ড আপডেট

update() মেথডটি সাধারণত একটি নির্দিষ্ট কন্ডিশন (যেমন, id) অনুযায়ী ডেটাবেসে রেকর্ড আপডেট করতে ব্যবহৃত হয়। এটি কোনো Entity এর ইনস্ট্যান্স গ্রহণ না করে সরাসরি ডেটাবেসে আপডেট করে। এটি সিংক ফাংশন এবং ব্যাচ আপডেটের জন্য উপযুক্ত।

উদাহরণ:

import { AppDataSource } from './data-source';
import { User } from './entity/User';

async function updateUser(id: number, newName: string) {
  const userRepository = AppDataSource.getRepository(User);

  // update() ব্যবহার করে রেকর্ড আপডেট করা
  const result = await userRepository.update(id, {
    name: newName,
  });

  if (result.affected) {
    console.log(`User with ID ${id} has been updated.`);
  } else {
    console.log(`User with ID ${id} not found.`);
  }
}

এখানে:

  • update(): এই মেথডটি সরাসরি id দিয়ে নির্দিষ্ট রেকর্ড আপডেট করে। প্রথম আর্গুমেন্টে আপডেট করার জন্য কন্ডিশন (যেমন id) এবং দ্বিতীয় আর্গুমেন্টে আপডেটের নতুন ডেটা পাঠানো হয়।
  • result.affected: এটি চেক করে দেখবে যে আপডেট করা রেকর্ডের সংখ্যা ০ বা তার বেশি, যাতে নিশ্চিত হওয়া যায় যে রেকর্ডটি আপডেট হয়েছে।

QueryBuilder ব্যবহার করে রেকর্ড আপডেট

QueryBuilder একটি শক্তিশালী TypeORM ফিচার, যা আরো কাস্টম কুয়েরি করতে এবং জটিল ডেটাবেস অপারেশন পরিচালনা করতে ব্যবহৃত হয়। এর মাধ্যমে আপনি SQL কুয়েরি তৈরি করে রেকর্ড আপডেট করতে পারেন।

QueryBuilder ব্যবহার করে রেকর্ড আপডেট উদাহরণ:

import { AppDataSource } from './data-source';
import { User } from './entity/User';

async function updateUser(id: number, newName: string) {
  const userRepository = AppDataSource.getRepository(User);

  // QueryBuilder ব্যবহার করে রেকর্ড আপডেট করা
  const result = await userRepository
    .createQueryBuilder()
    .update(User)
    .set({ name: newName })
    .where("id = :id", { id })
    .execute();

  if (result.affected) {
    console.log(`User with ID ${id} has been updated.`);
  } else {
    console.log(`User with ID ${id} not found.`);
  }
}

এখানে:

  • createQueryBuilder(): এটি QueryBuilder শুরু করার জন্য ব্যবহৃত হয়।
  • update(User): এই মেথডটি আপডেট অপারেশন শুরু করতে ব্যবহৃত হয় এবং এটি User Entity এর সাথে কাজ করবে।
  • set(): এটি আপডেট করার জন্য নতুন মান দেয়।
  • where(): কন্ডিশন (যেমন id = :id) নির্ধারণ করতে ব্যবহৃত হয়।
  • execute(): এটি কুয়েরি এক্সিকিউট করে এবং ডেটাবেসে পরিবর্তন প্রযোজ্য করে।

সারাংশ

TypeORM-এ রেকর্ড আপডেট করার জন্য দুইটি প্রধান পদ্ধতি রয়েছে:

  1. save(): এটি Entity-এর ইনস্ট্যান্স গ্রহণ করে এবং ডেটাবেসে সেই ইনস্ট্যান্সের ডেটা আপডেট করে।
  2. update(): এটি সরাসরি কন্ডিশন দিয়ে ডেটাবেসে আপডেট সম্পন্ন করে, Entity ইনস্ট্যান্স প্রয়োজন হয় না।

যদি আপনি আরো কাস্টম এবং জটিল কুয়েরি চান, তবে QueryBuilder ব্যবহারের মাধ্যমে আপনার আপডেট কুয়েরি আরও ডাইনামিকভাবে তৈরি করা সম্ভব। TypeORM এর এই পদ্ধতিগুলো ডেটাবেস অপারেশন সহজ এবং দক্ষ করে তোলে, এবং কম সময়ে বড় ডেটাসেটের মধ্যে অপারেশন সম্পাদন করতে সহায়তা করে।

Content added By
Promotion

Are you sure to start over?

Loading...