javascript + sql编写SQL客户端工具tabris-阿里云开发者社区

开发者社区> 鱼东东> 正文

javascript + sql编写SQL客户端工具tabris

简介: 祝大家2018新年快乐, 前不久发现了一个创意的脚本JtSQL(java编写) 开源地址为:https://github.com/noear/JtSQL JtSQL 特点:*.结合了JS、SQL、模板理念;*.
+关注继续查看
祝大家2018新年快乐,
前不久发现了一个创意的脚本JtSQL(java编写)
开源地址为:https://github.com/noear/JtSQL
JtSQL 特点:
*.结合了JS、SQL、模板理念;
*.保持了JS和SQL的语法高亮(利于DBA审核);
*.方便统一管理、部署、运行
*.像存储过程一样,提供当前上下文及变量支持;
*.像SQL客户端工具一样,即时编写即时运行;
*.像定制统计程序一样,提供过程和逻辑控制能力;
*.服务端运行(别误会成客户端运行啊...) 
 
确实在工作中总会遇到这样的问题
经常去拉sql,有时候一句sql执行搞不定 就得分多次sql,
写sql写的心累。把JavaScript 和 sql 结合起来确实很赞。能解决一直困扰的问题
以这个为创意点我也搞了一个工具 我命名为tabris脚本工具
(ps:大家有建议尽管提)
特色:
1 包含JtSQL的所有特性
2 利用微软的 ClearScript V8 engine
ClearScript很强大可以做到c# 与 JavaScript 互通
3 把功能模块化 目前已实现的3个重要的模块
1. 执行http请求处理模块
2. 日志输出处理模块
3. 执行sql处理模块.
4. js代码智能提示tabris模块
以后想用其他的功能都可以扩展其他模块
 
4. 代码编写采用CodeMirror ,写js代码智能提示
 
 
下面来一个动图感受下吧
以以下场景为示例
 
 
 
 
 
 

 

封装的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成功!')
    }
  }
}

 

下载地址

https://pan.baidu.com/s/1dGZuodt9aMVKWyJ1F0byZw


如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,转载文章之后须在文章页面明显位置给出作者和原文连接,谢谢。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Java基础-18总结Map,HashMap,HashMap与Hashtable区别,Collections工具类
你需要的是什么,直接评论留言。 获取更多资源加微信公众号“Java帮帮” (是公众号,不是微信好友哦) 还有“Java帮帮”今日头条号,技术文章与新闻,每日更新,欢迎阅读 学习交流请加Java帮帮交流QQ群553841695 分享是一种美德,分享更快乐! 1:Map(掌握) (1)将键映射到值的对象。一个映射不能包含重复的键;每个键最多只
2416 0
PostgreSQL 10.1 手册_部分 IV. 客户端接口_第 33 章 libpq - C 库_33.8. 异步提示
33.8. 异步提示 PostgreSQL通过LISTEN和NOTIFY命令提供了异步通知。一个客户端会话用LISTEN命令在一个特定的通知频道中注册它感兴趣的通知(也可以用UNLISTEN命令停止监听)。
933 0
PostgreSQL 10.1 手册_部分 IV. 客户端接口_第 33 章 libpq - C 库_33.6. 取消进行中的查询
33.6. 取消进行中的查询 一个客户端应用可以使用本节描述的函数请求取消一个仍在被服务器处理的命令。 PQgetCancel 创建一个数据结构,这个数据结构包含取消一个通过特定数据库连接发出的命令所需要的信息。
969 0
使用 TypeScript 改造构建工具及测试用例
最近的一段时间一直在搞TypeScript,一个巨硬出品、赋予JavaScript语言静态类型和编译的语言。 第一个完全使用TypeScript重构的纯Node.js项目已经上线并稳定运行了。 第二个前后端的项目目前也在重构中,关于前端基于webpack的TypeScript套路之前也有提到过:TypeScript在react项目中的实践。
1435 0
Sql性能检测工具:Sql server profiler和优化工具:Database Engine Tuning Advisor
原文:Sql性能检测工具:Sql server profiler和优化工具:Database Engine Tuning Advisor 一、工具概要     数据库应用系统性能低下,需要对其进行优化,     如果不知道问题出在哪里,可以使用性能检测工具sql server profiler。
1660 0
oracle客户端和plsql developer安装部署
应用场景 当一个服务器上安装了oracle数据库,我们需要通过外在工具来连接该oracle数据库,来更加方便简洁的操作数据库,对数据库进行增删改查的操作,这篇文章介绍了用Navicat来连接oracle,但是比较正式的还是采用plsql来操作oracle,毕竟navicat连oracle速度比较慢!用plsql更加稳定些。
1453 0
PostgreSQL 10.1 手册_部分 IV. 客户端接口_第 33 章 libpq - C 库_33.9. COPY命令相关的函数
33.9. COPY命令相关的函数 33.9.1. 用于发送COPY数据的函数 33.9.2. 用于接收COPY数据的函数 33.9.3. 用于COPY的废弃函数 PostgreSQL中的COPY命令有用于libpq的对网络连接读出或者写入的选项。
1086 0
TCP最大连接数测试工具
Avalanche 和WebSuite都可以测,SMB上用这个软件。要是没有这个软件,你可以找思博伦的工程师要个试用版的先测,买不买那个就看你们公司了。
1724 0
PostgreSQL 10.1 手册_部分 IV. 客户端接口_第 33 章 libpq - C 库_33.10. 控制函数
33.10. 控制函数 这些函数控制libpq行为各种各样的细节。 PQclientEncoding 返回客户端编码。 int PQclientEncoding(const PGconn *conn); 请注意,它返回的是编码 ID,而不是一个符号串字符串,如EUC_JP。
939 0
+关注
17
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载