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 ทำได้ 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
หากต้องการเชื่อมต่อกับเซิร์ฟเวอร์ Cloud SQL SQL โปรดดู Jdbc.getConnection(url)
การใช้ Jdbc.getConnection(url)
หากต้องการใช้วิธีนี้ คุณต้องให้สิทธิ์ การกำหนดเส้นทางระหว่างโดเมนแบบ Classless (CIDR) ช่วงที่อยู่ IP เพื่อให้เซิร์ฟเวอร์ของ 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 ได้
การสร้างการเชื่อมต่อฐานข้อมูลอื่นๆ
เพื่อสร้างการเชื่อมต่อฐานข้อมูลโดยใช้ Apps Script บริการ JDBC ในการตั้งค่าฐานข้อมูล คุณต้องให้สิทธิ์ช่วง 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 ชื่อบริษัทและผลิตภัณฑ์อื่นๆ ทั้งหมดเป็นเครื่องหมายการค้าของบริษัท ที่เกี่ยวข้อง