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