以前写过一段C#,苦于编译才能用。这样的小工具最好是用脚本语言来编写,易于执行,也易于修改。

js 代码 convert.js

--------------------------------------------------

String.prototype.trim=function(){
return this.replace(/(^\s*)|(\s*$)/g, "");
}
String.prototype.ltrim=function(){
return this.replace(/(^\s*)/g,"");
}
String.prototype.rtrim=function(){
return this.replace(/(\s*$)/g,"");
}
String.prototype.startWith=function(str){
var reg = new RegExp("^" + str);
return reg.test(this);
} var ConvertCode = {
content: "",
run: function(){
console.writeline(this.content); if( !this.content) return; var lines = this.content.split('\n');
var ret = "";
for(var i=0; i<lines.length; i++)
{
var dataInfo = this.convertLine(lines[i]);
if(!dataInfo) continue; ret = ret + "///<summary>\n";
ret = ret + "///\n";
ret = ret + "///<summary>\n";
ret = ret + '[DBColumn("' + dataInfo.column + '")]\n';
ret = ret + "public " + dataInfo.dataType + " " + dataInfo.name + "{get;set;}\n\n";
} return ret;
}, convertLine: function(line){
line = line.trim();
if(line.length == 0) return null; var tokens = line.split(/\s+/);
if(tokens.length <= 1) return null; return {
column: tokens[0],
name: this.toNormalName(tokens[0]),
dataType: this.toDataType(tokens[1])
};
}, toNormalName: function(raw) {
var tokens = raw.split('_'); var ret = "";
for(var i=0; i<tokens.length; i++)
{
ret = ret + tokens[i].substr(0,1).toUpperCase() + tokens[i].substr(1);
} return ret;
}, toDataType: function(d) {
if(!d) return null; if(d.startWith("varchar") || d.startWith("char")) return "string";
if(d.startWith("int")) return "int";
if(d.startWith("number")) return "decimal";
if(d.startWith("date")) return "DateTime";
return null;
}
}

html 代码用于调用它
----------------------------------

<html>
<head>
<meta charset='gbk' />
<script type='text/javascript' src="convert.js"></script>
<script language="javascript" type='text/javascript'> var doparse = function(){
var parser = ConvertCode;
parser.content = document.getElementById('content').value; var result = parser.run(content); document.getElementById('divResult').value = result;
console.writeline( document.getElementById('divResult').value);
}
</script>
</head>
<body>
<div><input type="button" value="转换" onclick="javascript:doparse();" style="width:50px; height: 30px;"/></div>
<div style="float:left; width: 500px;">
<textarea id='content' style="width:500px; height:600px;"></textarea>
</div>
<div style="float:left; width:500px; margin-left:30px;" >
<textarea id="divResult" style="width:500px; height:600px;"></textarea>
</div> </body>
</html>

一个用于将sql脚本转换成实体类的js代码的更多相关文章

  1. C# 将DataTable数据源转换成实体类

    using System; using System.Collections.Generic; using System.Data; using System.Reflection; /// < ...

  2. 使用Sql语句快速将数据表转换成实体类

    开发过程中经常需要根据数据表编写对应的实体类,下面是使用sql语句快速将数据表转换成对应实体类的代码,使用时只需要将第一行'TableName'引号里面的字母换成具体的表名称就行了: declare ...

  3. hibernate sql查询后对象转换成实体类

    在多表查询的时候使用hibernate的sql查询的时候,一般返回的是object[]数组,或者可以使用  session.createSQLQuery(sql).setResultTransform ...

  4. 远程调用get和post请求 将返回结果转换成实体类

    package org.springblade.desk.utils; import org.apache.http.client.ResponseHandler; import org.apache ...

  5. js-input框中写入的小写小写字母全部转换成大写字母的js代码

    <input type="text" id="blinitials" name="blinitials"  onkeyup=" ...

  6. sql hibernate查询转换成实体或对应的VO Transformers

    sql查询转换成实体或对应的VO Transformers //addScalar("id") 默认查询出来的id是全部大写的(sql起别名也无效,所以使用.addScalar(& ...

  7. DataTable转换成实体

    public static class DataTableToEntity { /// <summary> /// 将DataTable数据源转换成实体类 /// </summary ...

  8. xml格式报文的拼装,和解析成实体类

    我们的微信支付,使用的是第三方的支付,某银行的微信支持渠道.所有的接口请求.应答都是xml格式报文,这样就需要用到xml格式报文的拼装和解析,这儿简单讲一下. 拼接xml格式报文. 从页面表单提交和配 ...

  9. 使用py2exe将python脚本转换成exe可执行文件

    Python(wiki en  chs)是一门弱类型解释型脚本语言,拥有动态类型系统和垃圾回收功能,支持多种编程范式:面向对象.命令式.函数式和过程式编程. 由于Python拥有一个巨大而广泛的标准库 ...

随机推荐

  1. Linux命令之route

    route [-CFvnNee] [-A family] [-4|-6] route [-v] [-A family] [-4|-6] add [-net|-host] target [netmask ...

  2. 计算机基础-day2

    为何要有操作系统? 首先要说明一下操作系统是什么? 操作系统是协调.管理.控制计算机硬件和为应用程序提供接口的控制软件,操作系统向下连接硬件,向上承载应用程序. 由于硬件不论种类还是工作流程都是繁杂的 ...

  3. grunt-contrib-qunit安装过程中phantomjs安装报错问题解决

    今天自己fork了一个github上别人写的一个关于grunt项目的一个小demo(https://github.com/cowboy/jquery-tiny-pubsub),主要是想学习下grunt ...

  4. 关于phonegap的白名单机制

    今天在项目中发现了一个问题,使用phonegap开发的APP默认情况下可以将外部网页加载进入手机APP当中,这是相当危险的,同时也会给人一种APP非native的感觉. 可能遇见的一种情况是有些WiF ...

  5. [ARC103F]Distance Sums

    题意:有一棵树,对于每个点$i$,给出了它到其他点的距离和$i$,现在要还原这棵树,保证$d_i$两两不同 一个点从$u$移到相邻节点$v$时,若删掉$(u,v)$后$u$这边的连通块大小为$siz_ ...

  6. React的思想

    react是什么 react是开发出来用来促进UI交互的,创建带有状态的.可复用的UI组件的IU库 react不仅可以在浏览器端使用,还可以在服务器端使用,还可以两端一起使用. react的底层概念: ...

  7. [转]spring的ParameterMethodNameResolver

    例1: ParameterMethodNameResolver,这个可以根据请求的参数来确定一个需要调用的方法.例如,http://www.sf.net/index.view?testParam=te ...

  8. [转][Navicat for MySQL系列]Navicat如何使用(二)

    上一篇经验已经建立了数据连接,这篇我介绍一下Navicat for MySQL的“增删改查”功能是如何操作的. 工具/原料 Navicat for MySQL 10.1.7 数据库操作(基本) 1 远 ...

  9. [转]SSH包全解

    Struts2 Core Libraries 必须引入的包 : struts2-core.jar——Struts2的核心包 xwork-core.jar——Command模式框架,WebWork和St ...

  10. Codeforces Round #339 (Div. 1) B. Skills 暴力 二分

    B. Skills 题目连接: http://www.codeforces.com/contest/613/problem/B Description Lesha plays the recently ...