祝大家2018新年快樂, 前不久發現了一個創意的腳本JtSQL(java編寫) 開源地址為:https://github.com/noear/JtSQL JtSQL 特點:*.結合了JS、SQL、模板理念;*.保持了JS和SQL的語法高亮(利於DBA審核);*.方便統一管理、部署、運行*.像存儲過程 ...
祝大家2018新年快樂, 前不久發現了一個創意的腳本JtSQL(java編寫) 開源地址為:https://github.com/noear/JtSQL JtSQL 特點:
*.結合了JS、SQL、模板理念;
*.保持了JS和SQL的語法高亮(利於DBA審核);
*.方便統一管理、部署、運行
*.像存儲過程一樣,提供當前上下文及變數支持;
*.像SQL客戶端工具一樣,即時編寫即時運行;
*.像定製統計程式一樣,提供過程和邏輯控制能力;
*.服務端運行(別誤會成客戶端運行啊...)





封裝的sql log http 三大組件 在編輯器上的方法能代碼智能提示


//DB處理器 var db = this.tabris.create('SQL', { name:'testorm', type:'mysql' }); //http處理器 var http = this.tabris.create('HTTP', { method:'GET' }); //log處理器 var log = this.tabris.create('LOG', { trace:true }); db.delete('delete from child_district'); //從district表裡面獲取所有城市的Code var get_district_sql = "select Code from district"; var district_code_list = db.query(get_district_sql); for (var index = 0; index < district_code_list.length; index++) { getChildDistrictAndInsertToDb(district_code_list[index].Code); } //遠程獲取 function getChildDistrictAndInsertToDb(parentCode){ log.info(parentCode); var re = http.getJson({ url:'https://fuwu.sf-express.com/service/address/newAddr/getNewSubAddress?parentCode=' + parentCode }); if(!re.subAddressList || !re.subAddressList.length) return; for (var index = 0; index < re.subAddressList.length; index++) { var child = re.subAddressList[index]; var insertSql = "insert into child_district (Name,Code,DataChange_LastTime) VALUES('"+ child.distCnName +"','"+ child.distCode +"',now())"; var insertResult = db.insert(insertSql) if(insertResult!=1){ log.error(child.distCnName + '插入db失敗!'); }else{ log.info(child.distCnName + '插入db成功!') } } }