Apps Script, JDBC सेवा की मदद से बाहरी डेटाबेस से कनेक्ट कर सकती है. यह स्टैंडर्ड Java डेटाबेस कनेक्टिविटी टेक्नोलॉजी का रैपर है. JDBC सेवा, Google Cloud SQL for MySQL, MySQL, Microsoft SQL Server, और Oracle डेटाबेस के साथ काम करती है.
किसी बाहरी डेटाबेस को JDBC से अपडेट करने के लिए, आपकी स्क्रिप्ट को डेटाबेस से कनेक्शन खोलना होगा और फिर SQL स्टेटमेंट भेजकर बदलाव करना होगा.
Google Cloud SQL के डेटाबेस
Google Cloud SQL से आपको मिलते-जुलते डेटाबेस बनाने की सुविधा मिलती है, जो Google के क्लाउड में मौजूद होते हैं. ध्यान दें कि आपके इस्तेमाल के आधार पर, Cloud SQL पर शुल्क लग सकता है.
Cloud SQL क्विकस्टार्ट में दिया गया तरीका अपनाकर, Google Cloud SQL का इंस्टेंस बनाया जा सकता है.
Google Cloud SQL के कनेक्शन बनाना
Apps Script की JDBC सेवा का इस्तेमाल करके, Google Cloud SQL के डेटाबेस के साथ कनेक्शन बनाने के दो तरीके हैं:
- (सुझाया गया) Jdbc.getCloudSqlConnection(url) का इस्तेमाल करके कनेक्ट करना
- Jdbc.getConnection(url) का इस्तेमाल करके कनेक्ट करना
इन तरीकों के बारे में नीचे बताया गया है. दोनों ही मान्य हैं, लेकिन दूसरे तरीके के लिए आपको आईपी रेंज के एक सेट को अपने डेटाबेस का ऐक्सेस देने की अनुमति देनी होगी.
Jdbc.getCloudSqlConnection(url) का इस्तेमाल करके (सुझाया गया)
यह तरीका, Jdbc.getCloudSqlConnection(url) तरीके का इस्तेमाल करके, Google Cloud SQL MySQL इंस्टेंस से कनेक्शन बनाता है. डेटाबेस का यूआरएल jdbc:google:mysql://subname
जैसा होता है. इसमें subname
, MySQL इंस्टेंस कनेक्शन का नाम है, जो Google Cloud Console में Cloud SQL इंस्टेंस खास जानकारी पेज पर दिया गया है.
Cloud SQL SQL सर्वर से कनेक्ट करने के लिए, Jdbc.getConnection(url) देखें.
Jdbc.getConnection(url) का इस्तेमाल करना
इस तरीके का इस्तेमाल करने के लिए, आपको क्लासलेस इंटर-डोमेन रूटिंग (सीआईडीआर) आईपी पते की कुछ रेंज को अनुमति देनी होगी, ताकि Apps Script के सर्वर आपके डेटाबेस से कनेक्ट हो सकें. स्क्रिप्ट चलाने से पहले, नीचे दिया गया तरीका अपनाएं:
अपने Google Cloud SQL इंस्टेंस में, आईपी रेंज की अनुमति दें. एक बार में, इस डेटा सोर्स की मदद से ऐसा करें.
अपने डेटाबेस को असाइन किया गया यूआरएल कॉपी करें. इसका फ़ॉर्मैट
jdbc:mysql:subname
होना चाहिए.
इन आईपी रेंज को अनुमति देने के बाद, ऊपर कॉपी किए गए यूआरएल और Jdbc.getConnection(url) तरीकों में से किसी एक का इस्तेमाल करके, अपने Google Cloud SQL इंस्टेंस से कनेक्शन बनाया जा सकता है.
अन्य डेटाबेस
अगर आपके पास पहले से ही अपना MySQL, Microsoft SQL Server या Oracle डेटाबेस है, तो उसे Apps Script की JDBC सेवा के ज़रिए कनेक्ट किया जा सकता है.
अन्य डेटाबेस कनेक्शन बनाना
Apps Script JDBC सेवा का इस्तेमाल करके डेटाबेस कनेक्शन बनाने के लिए, आपको अपनी डेटाबेस सेटिंग में इस डेटा सोर्स से आईपी रेंज की अनुमति देनी होगी.
अनुमति वाले डोमेन की सूची तैयार हो जाने के बाद, अपने डेटाबेस के यूआरएल और Jdbc.getConnection(url) तरीकों में से किसी एक का इस्तेमाल करके, डेटाबेस से कनेक्शन बनाया जा सकता है.
नमूना कोड
नीचे दिए गए सैंपल कोड में यह माना गया है कि आपको Google Cloud SQL के डेटाबेस से कनेक्ट करना है. साथ ही, Jdbc.getCloudSqlConnection(url) तरीके का इस्तेमाल करके, डेटाबेस कनेक्शन बनाता है. दूसरे डेटाबेस के लिए, आपको डेटाबेस कनेक्शन बनाने के लिए Jdbc.getConnection(url) तरीके का इस्तेमाल करना होगा.
JDBC के तरीकों के बारे में ज़्यादा जानकारी के लिए, JDBC के लिए Java दस्तावेज़ देखें.
डेटाबेस, उपयोगकर्ता, और टेबल बनाना
ज़्यादातर डेवलपर, डेटाबेस, उपयोगकर्ता, और टेबल बनाने के लिए, MySQL कमांड-लाइन टूल का इस्तेमाल करते हैं. हालांकि, Apps Script में
इस तरह का काम किया जा सकता है, जैसा कि नीचे दिखाया गया है. कम से कम एक दूसरा उपयोगकर्ता बनाना बेहतर होता है, ताकि आपकी स्क्रिप्ट को डेटाबेस से हमेशा root
के तौर पर कनेक्ट न करना पड़े.
डेटाबेस में लिखें
नीचे दिए गए उदाहरणों में, डेटाबेस में सिंगल रिकॉर्ड और 500 रिकॉर्ड के बैच लिखने का तरीका बताया गया है. बल्क ऑपरेशन के लिए बैचिंग ज़रूरी है.
पैरामीटर वाले स्टेटमेंट के इस्तेमाल पर भी ध्यान दें, जिसमें वैरिएबल को ?
से दिखाया जाता है. एसक्यूएल इंजेक्शन अटैक को रोकने के लिए, आपको उपयोगकर्ता से मिले सभी डेटा को एस्केप करने के लिए, पैरामीटर वाले स्टेटमेंट इस्तेमाल करने चाहिए.
डेटाबेस से पढ़ना
इस उदाहरण में डेटाबेस से बड़ी संख्या में रिकॉर्ड को पढ़ने का तरीका बताया गया है. साथ ही, ज़रूरत के मुताबिक नतीजे के सेट पर लूप में चलाएं.
कनेक्शन बंद किए जा रहे हैं
जब स्क्रिप्ट का निष्पादन पूरा हो जाता है, तो JDBC कनेक्शन अपने आप बंद हो जाता है. (ध्यान रखें कि सिर्फ़ एक google.script.run
कॉल को एक्ज़ीक्यूशन के तौर पर गिना जाता है, भले ही कॉल करने वाला एचटीएमएल सेवा पेज खुला रहता हो.)
फिर भी, अगर आपको पता है कि आपने स्क्रिप्ट के आखिर में कनेक्शन, स्टेटमेंट या सेट किया हुआ काम पूरा कर लिया है, तो JdbcConnection.close()
, JdbcStatement.close()
या JdbcResultSet.close()
पर मैन्युअल रूप से कॉल करके उन्हें बंद कर दें.
सूचना या प्रॉम्प्ट वाला डायलॉग दिखाने से, सभी ओपन JDBC कनेक्शन भी बंद हो जाते हैं. हालांकि, यूज़र इंटरफ़ेस (यूआई) एलिमेंट दिखाने वाले दूसरे एलिमेंट पर ऐसा नहीं होता. जैसे, कस्टम मेन्यू या डायलॉग और कस्टम कॉन्टेंट वाले साइडबार.
Google, Google Workspace, और इससे जुड़े निशान और लोगो, Google LLC के ट्रेडमार्क हैं. दूसरी सभी कंपनियां और प्रॉडक्ट के नाम, उन कंपनियों के ट्रेडमार्क हैं जिनसे वे जुड़े हुए हैं.