스프레드시트로 디비 접속 -> 쿼리 실행 -> 데이터 업데이트 할 때 사용했던 코드
var ipaddress = '0.0.0.0';
var port = 20001;
var dbName = 'dbname';
var username = 'username';
var password = 'password';
var url = 'jdbc:mysql://' + ipaddress + ':' + port + '/' + dbName;
function readData() {
var conn = Jdbc.getConnection(url, username, password);
var stmt = conn.createStatement();
var spreadsheet = SpreadsheetApp.getActive();
var sheet_Query = spreadsheet.getSheetByName('Query'); //쿼리 시트
var sheet_results = spreadsheet.getSheetByName('Results'); //결과 시트
var query_arr = [];
for (var i = 0; i < sheet_Query.getLastRow(); i++) {
query_arr.push(sheet_Query.getRange(i + 1, 1).getValue());
}
for (var i = 0; i < query_arr.length; i++) {
var results = stmt.executeQuery(query_arr[i]); //쿼리 실행 결과
var metaData = results.getMetaData();
var numCols = metaData.getColumnCount(); //쿼리 실행 결과의 열 크기
// sheet_results.clearContents(); //시트 데이터 삭제
var arr = []; // 빈 배열 생성
for (var col = 0; col < numCols; col++) {
arr.push(metaData.getColumnName(col + 1)); //arr 배열에 DB 컬럼 이름 담기
}
sheet_results.appendRow(arr); //시트의 데이터가 있는 마지막 행 밑에 arr 배열에 담긴 데이터 넣음.
while (results.next()) { //쿼리 결과의 다음 열이 있으면 아래 코드 실행
arr = [];
for (var col = 0; col < numCols; col++) {
arr.push(results.getString(col + 1));
}
sheet_results.appendRow(arr);
}
}
results.close();
stmt.close();
sheet_results.autoResizeColumns(1, numCols + 1); // 데이터에 따라 열 자동 넓히기
}