Apps Script สามารถเชื่อมต่อกับฐานข้อมูลภายนอกผ่านบริการ JDBC ซึ่งเป็นเครื่องมือสำหรับจัดการข้อมูลมาตรฐานของเทคโนโลยี Java Database Connectivity บริการ JDBC รองรับฐานข้อมูล Google Cloud SQL สำหรับ MySQL, MySQL, Microsoft SQL Server และ Oracle
หากต้องการอัปเดตฐานข้อมูลภายนอกด้วย JDBC สคริปต์ต้องเปิดการเชื่อมต่อกับฐานข้อมูล แล้วทําการเปลี่ยนแปลงโดยส่งคําสั่ง SQL
ฐานข้อมูล Google Cloud SQL
Google Cloud SQL ช่วยให้คุณสร้างฐานข้อมูลเชิงสัมพันธ์ที่อยู่ในระบบคลาวด์ของ Google ได้ โปรดทราบว่า Cloud SQL อาจมีการเรียกเก็บเงินตามการใช้งาน
คุณสร้างอินสแตนซ์ Google Cloud SQL ได้โดยทำตามขั้นตอนที่ระบุไว้ในคู่มือเริ่มต้นใช้งาน Cloud SQL
การสร้างการเชื่อมต่อ Google Cloud SQL
การสร้างการเชื่อมต่อกับฐานข้อมูล Google Cloud SQL โดยใช้บริการ JDBC ของ Apps Script มี 2 วิธีดังนี้
- (แนะนำ) การเชื่อมต่อโดยใช้ Jdbc.getCloudSqlConnection(url)
- การเชื่อมต่อโดยใช้ Jdbc.getConnection(url)
โดยจะอธิบายวิธีการเหล่านี้ด้านล่าง ทั้ง 2 วิธีใช้ได้ แต่วิธีหลังกำหนดให้คุณให้สิทธิ์ชุดช่วง IP เพื่อเข้าถึงฐานข้อมูล
การใช้ Jdbc.getCloudSqlConnection(url) (แนะนำ)
เมธอดนี้จะสร้างการเชื่อมต่อกับอินสแตนซ์ MySQL ของ Google Cloud SQL โดยใช้เมธอด Jdbc.getCloudSqlConnection(url) URL ของฐานข้อมูลอยู่ในรูปแบบ jdbc:google:mysql://subname
โดยที่ subname
คือชื่อการเชื่อมต่ออินสแตนซ์ MySQL ที่แสดงในหน้าภาพรวมของอินสแตนซ์ Cloud SQL ในคอนโซล Google Cloud
หากต้องการเชื่อมต่อกับ Cloud SQL SQL Server โปรดดู Jdbc.getConnection(url)
ใช้ Jdbc.getConnection(url)
หากต้องการใช้วิธีนี้ คุณต้องให้สิทธิ์ช่วงที่อยู่ IP Classless Inter-Domain Routing (CIDR) บางช่วงเพื่อให้เซิร์ฟเวอร์ของ Apps Script เชื่อมต่อกับฐานข้อมูลได้ ก่อนเรียกใช้สคริปต์ ให้ทําตามขั้นตอนต่อไปนี้
ในอินสแตนซ์ Google Cloud SQL ให้ให้สิทธิ์ช่วง IP ทีละช่วงจากแหล่งข้อมูลนี้
คัดลอก URL ที่กำหนดให้กับฐานข้อมูลของคุณ ซึ่งควรมีรูปแบบ
jdbc:mysql:subname
เมื่อให้สิทธิ์ช่วง IP เหล่านี้แล้ว คุณสามารถสร้างการเชื่อมต่อกับอินสแตนซ์ Google Cloud SQL โดยใช้เมธอด Jdbc.getConnection(url) รายการใดรายการหนึ่งและ URL ที่คุณคัดลอกไว้ด้านบน
ฐานข้อมูลอื่นๆ
หากมีฐานข้อมูล MySQL, Microsoft SQL Server หรือ Oracle อยู่แล้ว คุณจะเชื่อมต่อกับฐานข้อมูลดังกล่าวผ่านบริการ JDBC ของ Apps Script ได้
การสร้างการเชื่อมต่อฐานข้อมูลอื่นๆ
หากต้องการสร้างการเชื่อมต่อฐานข้อมูลโดยใช้ บริการ JDBC ของ Apps Script ในการตั้งค่าฐานข้อมูล คุณต้องให้สิทธิ์ช่วง IP จากแหล่งข้อมูลนี้
เมื่อสร้างรายการที่อนุญาตเหล่านี้แล้ว คุณสามารถสร้างการเชื่อมต่อกับฐานข้อมูลได้โดยใช้เมธอด Jdbc.getConnection(url) รายการใดรายการหนึ่งและ URL ของฐานข้อมูล
โค้ดตัวอย่าง
โค้ดตัวอย่างด้านล่างจะถือว่าคุณเชื่อมต่อกับฐานข้อมูล Google Cloud SQL และสร้างการเชื่อมต่อฐานข้อมูลโดยใช้เมธอด Jdbc.getCloudSqlConnection(url) สําหรับฐานข้อมูลอื่นๆ คุณต้องใช้เมธอด Jdbc.getConnection(url) เพื่อสร้างการเชื่อมต่อฐานข้อมูล
ดูข้อมูลเพิ่มเติมเกี่ยวกับเมธอด JDBC ได้ที่เอกสารประกอบ Java สําหรับ JDBC
สร้างฐานข้อมูล ผู้ใช้ และตาราง
นักพัฒนาซอฟต์แวร์ส่วนใหญ่ใช้เครื่องมือบรรทัดคำสั่ง MySQL เพื่อสร้างฐานข้อมูล ผู้ใช้ และตาราง อย่างไรก็ตาม คุณสามารถทำสิ่งเดียวกันนี้ในสคริปต์ของแอปได้ ดังที่แสดงด้านล่าง คุณควรสร้างผู้ใช้รายอื่นอย่างน้อย 1 คนเพื่อให้สคริปต์ไม่ต้องเชื่อมต่อกับฐานข้อมูลในฐานะroot
เสมอไป
เขียนลงในฐานข้อมูล
ตัวอย่างด้านล่างแสดงวิธีเขียนระเบียนเดียวลงในฐานข้อมูล รวมถึงระเบียน 500 รายการพร้อมกัน การแบ่งกลุ่มเป็นสิ่งสําคัญสําหรับการดําเนินการแบบเป็นกลุ่ม
โปรดสังเกตการใช้คำสั่งที่มีพารามิเตอร์ ซึ่งตัวแปรจะแสดงด้วย ?
หากต้องการป้องกันการโจมตีด้วยการแทรก SQL คุณควรใช้คำสั่งที่มีพารามิเตอร์เพื่อหลีกหนีข้อมูลที่ได้จากผู้ใช้ทั้งหมด
อ่านจากฐานข้อมูล
ตัวอย่างนี้แสดงวิธีอ่านระเบียนจํานวนมากจากฐานข้อมูล โดยวนซ้ำชุดผลลัพธ์ตามจําเป็น
การปิดการเชื่อมต่อ
การเชื่อมต่อ JDBC จะปิดโดยอัตโนมัติเมื่อสคริปต์ทำงานเสร็จ (โปรดทราบว่าการเรียกใช้ google.script.run
ครั้งเดียวจะนับเป็นการเรียกใช้ที่เสร็จสมบูรณ์ แม้ว่าหน้าบริการ HTML ที่ทำการเรียกใช้จะยังคงเปิดอยู่ก็ตาม)
อย่างไรก็ตาม หากคุณรู้ว่าการเชื่อมต่อ คำสั่ง หรือชุดผลลัพธ์สิ้นสุดแล้วก่อนที่จะถึงจุดสิ้นสุดของสคริปต์ คุณควรปิดการเชื่อมต่อ คำสั่ง หรือชุดผลลัพธ์ด้วยตนเองโดยเรียกใช้ JdbcConnection.close()
, JdbcStatement.close()
หรือ JdbcResultSet.close()
การแสดงกล่องโต้ตอบข้อความแจ้งหรือข้อความแจ้งจะเป็นการสิ้นสุดการเชื่อมต่อ JDBC ที่เปิดอยู่ด้วย แต่องค์ประกอบ UI อื่นๆ ที่แสดง เช่น เมนูหรือกล่องโต้ตอบที่กำหนดเอง และแถบด้านข้างที่มีเนื้อหาที่กำหนดเอง จะไม่ถือว่าละเมิด
Google, Google Workspace รวมถึงเครื่องหมายและโลโก้ที่เกี่ยวข้องเป็นเครื่องหมายการค้าของ Google LLC ชื่อบริษัทและชื่อผลิตภัณฑ์อื่นๆ ทั้งหมดเป็นเครื่องหมายการค้าของบริษัทที่เกี่ยวข้อง