Apps Script는 표준 자바 데이터베이스 연결 기술을 둘러싼 래퍼인 JDBC 서비스를 통해 외부 데이터베이스에 연결할 수 있습니다. JDBC 서비스는 MySQL용 Google Cloud SQL, 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)을 사용하여 연결
이러한 메서드는 아래에 설명되어 있습니다. 둘 다 유효하지만 두 번째 방법을 사용하면 데이터베이스에 액세스할 수 있도록 IP 범위 집합을 승인해야 합니다.
Jdbc.getCloudSqlConnection(url) 사용 (권장)
이 메서드는 Jdbc.getCloudSqlConnection(url) 메서드를 사용하여 Google Cloud SQL MySQL 인스턴스에 대한 연결을 만듭니다. 데이터베이스 URL의 형식은 jdbc:google:mysql://subname
입니다. 여기서 subname
는 Google Cloud Console의 Cloud SQL 인스턴스 개요 페이지에 나열된 MySQL 인스턴스 연결 이름입니다.
Cloud SQL SQL Server에 연결하려면 Jdbc.getConnection(url)을 참조하세요.
Jdbc.getConnection(url) 사용
이 방법을 사용하려면 Apps Script의 서버가 데이터베이스에 연결할 수 있도록 특정 클래스 없는 도메인 간 라우팅 (CIDR) IP 주소 범위를 승인해야 합니다. 스크립트를 실행하기 전에 다음 단계를 완료하세요.
데이터베이스에 할당된 URL을 복사합니다. URL 형식은
jdbc:mysql:subname
입니다.
이러한 IP 범위를 승인하고 나면 Jdbc.getConnection(url) 메서드 중 하나와 위에서 복사한 URL을 사용하여 Google Cloud SQL 인스턴스에 연결할 수 있습니다.
기타 데이터베이스
이미 자체 MySQL, Microsoft SQL Server 또는 Oracle 데이터베이스가 있는 경우 Apps Script의 JDBC 서비스를 통해 연결할 수 있습니다.
다른 데이터베이스 연결 만들기
Apps Script JDBC 서비스를 사용하여 데이터베이스 연결을 만들려면 데이터베이스 설정에서 이 데이터 소스의 IP 범위를 승인해야 합니다.
허용 목록이 완료되면 Jdbc.getConnection(url) 메서드 중 하나와 데이터베이스 URL을 사용하여 데이터베이스 연결을 만들 수 있습니다.
샘플 코드
아래 샘플 코드는 Google Cloud SQL 데이터베이스에 연결한다고 가정하고 Jdbc.getCloudSqlConnection(url) 메서드를 사용하여 데이터베이스 연결을 만듭니다. 다른 데이터베이스의 경우 Jdbc.getConnection(url) 메서드를 사용하여 데이터베이스 연결을 만들어야 합니다.
JDBC 메서드에 대한 자세한 내용은 JDBC용 자바 문서를 참조하세요.
데이터베이스, 사용자, 테이블 만들기
대부분의 개발자는 MySQL 명령줄 도구를 사용하여 데이터베이스, 사용자, 테이블을 만듭니다. 하지만 아래와 같이 Apps Script에서도 동일한 작업을 수행할 수 있습니다. 스크립트가 항상 데이터베이스에 root
로 연결될 필요는 없도록 다른 사용자를 한 명 이상 만드는 것이 좋습니다.
데이터베이스에 쓰기
아래 예시는 데이터베이스에 단일 레코드를 기록하는 방법과 배치 500개를 일괄 쓰는 방법을 보여줍니다. 일괄 처리는 일괄 작업에 필수적입니다.
또한 매개변수가 ?
로 표시되는 매개변수화된 문도 사용합니다. SQL 삽입 공격을 방지하려면 매개변수화된 문을 사용하여 사용자가 제공한 모든 데이터를 이스케이프해야 합니다.
데이터베이스에서 읽기
이 예에서는 데이터베이스에서 다량의 레코드를 읽고 필요에 따라 결과 집합을 순환하는 방법을 보여줍니다.
연결 닫기
스크립트 실행이 완료되면 JDBC 연결이 자동으로 닫힙니다. 호출한 HTML 서비스 페이지가 열린 상태로 있더라도 단일 google.script.run
호출은 완전한 실행으로 간주된다는 점에 유의하세요.
하지만 스크립트가 끝나기 전에 연결, 문 또는 결과 집합을 완성했다는 것을 알고 있다면 JdbcConnection.close()
, JdbcStatement.close()
또는 JdbcResultSet.close()
를 호출하여 수동으로 종료하는 것이 좋습니다.
알림 또는 메시지 대화상자를 표시하면 열려 있는 JDBC 연결도 모두 종료됩니다. 그러나 맞춤 메뉴 또는 대화상자, 맞춤 콘텐츠가 있는 사이드바와 같은 다른 UI 요소는 표시하지 않습니다.
Google, Google Workspace 및 관련 마크와 로고는 Google LLC의 상표입니다. 기타 모든 회사명 및 제품명은 해당 업체의 상표입니다.