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

祝我们2018新年快乐,

  前言:有了NuGet引用什么的管理起来方便多了,特别是集体协作的时候,可是在利用过程中发觉从远程还原包的时候真的是等到花都谢了,没办法,只能自己搞个NuGet服务器。

多年来发现了一个新意的脚本JtSQL(java编写)

  —————我是分割线————

管理,开源地址为:https://github.com/noear/JtSQL

  废话少说,起初正题:

JtSQL 特点:
*.结合了JS、SQL、模板理念;
*.保持了JS和SQL的语法高亮(利于DBA审核);
*.方便统一管理、部署、运行
*.像存储过程一样,提供当前上下文及变量辅助;
*.像SQL客户端工具一样,即时编写即时运行;
*.像定制总计程序一样,提供经过和逻辑控制能力;
*.服务端运行(别误会成客户端运行啊…) 

  一、部署NugetServer

 

    1、新建一个空的web项目(这里.NET
Framework版本选了4.6是因为下一步的NuGet.Server包最新稳定版3.0.0依赖.NET
Framework 4.6)

管理 1

    管理 2

真正在工作中总会遇上这么的题材

    管理 3

时常去拉sql,有时候一句sql执行搞不定
就得分多次sql,

    2、为品种添加NuGet.Server包

写sql写的心累。把JavaScript
和 sql 结合起来的确很赞。能缓解平昔困扰的问题

    管理 4

以那一个为创意点自己也搞了一个工具 我取名为tabris脚本工具

     3、将网站揭橥到服务器的IIS上去,访问该网站会看到以下内容就表明部署成功了

开源地址为:https://github.com/yuzd/ClearScript.Manager

    管理 5

(ps:我们有指出尽管提)

    备注:首个地方就是包源的地方,vs配置时就需要它,第二个上传包用的,具体科目请参见其他博客吧,有诸多形式,注意一点,如若不想使用APIKey,可以在部署文件中置为false。

特色:

  二、配置vs中NuGet引用路径(工具–>选项–>NuGet包管理器–>程序包源)

1 包含JtSQL的具备特性

    管理 6

2 利用微软的
ClearScript V8 engine

    这样之后下载包就可以切换到温馨的服务器了

详见请参见:https://microsoft.github.io/ClearScript/Tutorial/FAQtorial.html?from=timeline&isappinstalled=0

    管理 7

ClearScript很强劲可以成功c# 与 JavaScript 互通

3 把效用模块化
近来已实现的3个重大的模块

  1. 施行http请求处理模块

  2. 日志输出处理模块

  3. 实践sql处理模块.

  4. js代码智能指示tabris模块

管理 8

管理 9

其后想用其他的效劳都能够扩大其他模块

 

  1. 代码编写选取CodeMirror
    ,写js代码智能指示

 

 

下面来一个动图感受下吧

以以下场景为示范

 

 管理 10

 

 

管理 11

 

 管理 12

 

装进的sql log http 三大组件 在编辑器上的艺术能代码智能指示 

管理 13

 

管理 14

 

管理 15

 

//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://github.com/yuzd/ClearScript.Manager/tree/master/src/Tabris.Winform/Release

Post Author: admin

发表评论

电子邮件地址不会被公开。 必填项已用*标注