Apps Script สามารถเชื่อมต่อกับฐานข้อมูลภายนอกผ่านบริการ JDBC ซึ่งเป็น Wrapper เกี่ยวกับเทคโนโลยีการเชื่อมต่อฐานข้อมูล Java บริการ 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 ทําได้ 2 วิธีโดยใช้บริการ JDBC ของ Apps Script ดังนี้
- (แนะนํา) การเชื่อมต่อโดยใช้ 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 Platform
หากต้องการเชื่อมต่อกับเซิร์ฟเวอร์ SQL ของ Cloud 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 ชื่อบริษัทและชื่อผลิตภัณฑ์อื่นๆ ทั้งหมดเป็นเครื่องหมายการค้าของบริษัทที่เกี่ยวข้อง