Apps Script สามารถเชื่อมต่อกับฐานข้อมูลภายนอกผ่านบริการ JDBC ซึ่งเป็น Wrapper ที่เป็นไปตามเทคโนโลยี Java Database Connectivity มาตรฐาน บริการ JDBC รองรับ Google Cloud SQL สำหรับ MySQL, MySQL, เซิร์ฟเวอร์ Microsoft SQL และฐานข้อมูล 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 วิธีใช้งานได้ แต่วิธีที่ 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 โปรดดู 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 เพื่อสร้างฐานข้อมูล ผู้ใช้ และตาราง แต่ก็สามารถทำแบบเดียวกันใน Apps Script ดังที่แสดงด้านล่าง ควรสร้างผู้ใช้รายอื่นอย่างน้อย 1 รายเพื่อให้สคริปต์ไม่จำเป็นต้องเชื่อมต่อกับฐานข้อมูลเป็น root
เสมอไป
เขียนไปยังฐานข้อมูล
ตัวอย่างด้านล่างแสดงวิธีเขียนระเบียนเดียวไปยังฐานข้อมูลเช่นเดียวกับกลุ่มระเบียน 500 รายการ การทำงานแบบกลุ่มมีความสำคัญอย่างยิ่งสำหรับการดำเนินการแบบกลุ่ม
นอกจากนี้ คุณยังควรใช้คำสั่งที่ทำเป็นพารามิเตอร์ ซึ่ง ?
แสดงตัวแปรต่างๆ ด้วย เพื่อป้องกันการโจมตีการแทรก SQL คุณควรใช้คำสั่งที่แบ่งเป็นพารามิเตอร์เพื่อหลีกข้อมูลทั้งหมดที่ผู้ใช้ให้ไว้
อ่านจากฐานข้อมูล
ตัวอย่างนี้แสดงวิธีอ่านระเบียนจำนวนมากจากฐานข้อมูล โดยวนซ้ำชุดผลลัพธ์ตามที่จำเป็น
กำลังปิดการเชื่อมต่อ
การเชื่อมต่อ JDBC จะปิดโดยอัตโนมัติเมื่อสคริปต์ทำงานเสร็จแล้ว (โปรดทราบว่าการเรียกใช้ google.script.run
ครั้งเดียวจะนับเป็นการดำเนินการที่เสร็จสมบูรณ์ แม้ว่าหน้าบริการ HTML ที่เรียกใช้จะยังคงเปิดอยู่ก็ตาม)
อย่างไรก็ตาม หากคุณทราบว่าได้ดำเนินการเชื่อมต่อ คำสั่ง หรือชุดผลลัพธ์ก่อนสิ้นสุดสคริปต์แล้ว คุณก็ควรปิดสคริปต์ดังกล่าวด้วยตนเองโดยโทรหา
JdbcConnection.close()
,
JdbcStatement.close()
หรือ
JdbcResultSet.close()
การแสดงกล่องโต้ตอบการแจ้งเตือนหรือข้อความแจ้งจะหยุดการเชื่อมต่อ JDBC ที่เปิดอยู่ แต่องค์ประกอบ UI อื่นๆ ที่แสดง เช่น เมนูหรือกล่องโต้ตอบที่กำหนดเอง และแถบด้านข้างที่มีเนื้อหาที่กำหนดเอง ไม่ได้แสดง
Google, Google Workspace รวมถึงเครื่องหมายและโลโก้ที่เกี่ยวข้องเป็นเครื่องหมายการค้าของ Google LLC ชื่อบริษัทและผลิตภัณฑ์อื่นๆ ทั้งหมดเป็นเครื่องหมายการค้าของบริษัทที่เกี่ยวข้อง