[NestJS] วิธีต่างๆในการ Insert Data กับ TypeORM ใน MySQL

Image placeholder
แวะมาทักทายกันได้

บทความนี้ผู้เขียนอยากจะบันทึกวิธีการ Insert Data สำหรับ TypeORM ที่ใช้ใน NestJS หากใครที่อาจจะยังไม่เคยอ่านบทความก่อนหน้านี้ แนะนำให้อ่านบทความตาม link นี้ก่อนครับ

 

[NestJS] Data Persistance MySQL With TypeORM

https://www.sklsongkiat.com/articles/detail/nestjs-data-persistance-mysql-with-typeorm

 

Repository คืออะไร

            Repository เป็น Class หนึ่งของ TypeORM ที่ใช้จัดการตารางฐานข้อมูล เช่น เพิ่ม (Insert) ลบ (delete) แก้ไข(update) เรียกข้อมูล (get) เป็นต้น เมื่อเรียกใช้ Repository จะต้องประกาศ Generic Type เป็น Entity ที่จะจัดการด้วย ดังตัวอย่าง

 



สมมติว่ามี Entity (ตารางชื่อว่า Order

 

เวลาที่เรียกใช้งาน ไม่ว่าจะเป็น method ใดก็ตามให้ทำแบบนี้ ผู้เขียนจะยกตัวอย่างเฉพาะ การ insert สำหรับบทความนี้



หรือจะแบบนี้




จาก code จะเห็นว่าเป็นการ Insert ทีละ Object ถ้าไม่มีปริมาณการเก็บข้อมูลในแต่ละ Transaction เยอะ อาจจะแค่ แถว หรือ แถว ก็สามารถใช้วิธีนี้ได้

 

Repository กับการใช้ SQL String query

        หากใครที่อยากจะจัดการ SQL String เองก็สามารถนำ String Query มาใช้ได้เหมือนกัน เช่น


INSERT INTO table_name 

(column1, column2, column3, ...) 

VALUES (value1, value2, value3, ...);

 


สำหรับวิธีนี้ หากใครมาทางสาย Data Science หรือ วิทยาการข้อมูล วิทยาศาสตร์ข้อมูล ก็อาจจะนำไปใช้งานได้ ถ้าต้องการสร้างเครื่องมืออื่นๆ ที่คิดขึ้นเอง

 

Repository กับการใช้ Query Builder

            Query Builder ก็จะเป็น Method หรือ function ต่างๆที่ TypeORM สร้างเป็น Chain เอาไว้ให้เรียบร้อย วิธีเรียกใช้ก็ไม่ยาก ซึ่งวิธีนี้เหมาะกับ ถ้า Data มาจำนวนมากๆ เป็น Array ก็นำมาใส่เข้าไปตรง values ได้เลย

 



ตัวอย่างเพื่อให้เห็นภาพได้ง่ายขึ้น

 


สรุป

ที่ผู้เขียนนำตัวอย่างมานี้ เพียงอยากบันทึกข้อแตกต่างระหว่างแบบ Insert ทีละครั้ง หรือ Insert ทีละจำนวนมากๆ ว่าควรใช้ วิธีไหนที่เหมาะสมกับการ Insert อาจจะยังไม่มีผลลัพท์ให้เห็น ผู้อ่านควรลองนำ code ไปทดสอบ Run ดูเพื่อความเข้าใจที่มากขึ้น ครับ


อย่าลืม click Google Ads เพื่อเป็นกำลังใจให้ผู้เขียนด้วยนะครับ


 

Ref :

https://typeorm.io/#/working-with-repository

https://typeorm.io/#/repository-api

https://typeorm.io/#/insert-query-builder

แวะมาทักทายกันได้
donate

Categories: Tutorial Tags: #nestjs , #programing , 4194