Отправка записей из электронной таблицы Google в базу данных MySQL - PullRequest
0 голосов
/ 20 февраля 2019

Я хочу динамически отправлять данные в базу данных MySQL из электронной таблицы Google. Я использую скрипты приложения Google, но мне не удалось выполнить задачу, я могу управлять хранением записей в переменной, но не могу передать их и отправить в базу данных, нижеу меня есть скрипты;

Скрипты, приведенные ниже, только добавляют, '"+ data [i] [0] +"' и 1, '"+ data [i] [] +"' к таблице базы данныхвместо фактических значений

Пожалуйста, помогите мне в этом

function writeManyRecords() {

  //var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/1e4o3m5F2sWvNFlMk2MN8tHYtX_WYFmFJyOjW0_AHk/edit#gid=648128284");
  var data = sheet.getDataRange().getValues();   
  //var stmt = conn.createStatement(); 

  var conn = Jdbc.getConnection('jdbc:mysql://IP_address:3306/database_name','user','password');
  conn.setAutoCommit(false);

  var start = new Date();
  var stmt = conn.prepareStatement('INSERT INTO _user_granted_authority' + '(_URI, _CREATOR_URI_USER) values (?, ?)');


  for (var i = 0; i < 5; i++) {
   stmt.setString(1,'" + data[i][0] + "');
   stmt.setString(2,'" + data[i][1] + "');
   stmt.addBatch();
 }

  var batch = stmt.executeBatch();

  Logger.log(sheet.getDataRange().getValues());

  conn.commit();
  conn.close();

  var end = new Date();

  Logger.log('Time elapsed: %sms for %s rows.', end - start, batch.length);
}

}

1 Ответ

0 голосов
/ 20 февраля 2019

Попробуйте ниже, где я изменил часть setString, чтобы использовать только переменные:

function writeManyRecords() {

  //var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/1e4o3m5F2sWvNFlMk2MN8tHYtX_WYscFmFJyOjW0_AHk/edit#gid=648128284");
  var data = sheet.getDataRange().getValues();   
  //var stmt = conn.createStatement(); 

  var conn = Jdbc.getConnection('jdbc:mysql://IP_address:3306/database_name','user','password');
  conn.setAutoCommit(false);

  var start = new Date();
  var stmt = conn.prepareStatement('INSERT INTO _user_granted_authority' + '(_URI, _CREATOR_URI_USER) values (?, ?)');


  for (var i = 0; i < 5; i++) {
   stmt.setString(1, data[i][0]);
   stmt.setString(2, data[i][1]);
   stmt.addBatch();
 }

  var batch = stmt.executeBatch();

  Logger.log(sheet.getDataRange().getValues());

  conn.commit();
  conn.close();

  var end = new Date();

  Logger.log('Time elapsed: %sms for %s rows.', end - start, batch.length);
}
...