以前写过一段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. [BZOJ3529]数表

    假设$n\leq m$,我们先不考虑$\leq a$的限制 $\sum\limits_{i=1}^n\sum\limits_{j=1}^m\sigma((i,j))=\sum\limits_{T=1} ...

  2. 【Tarjan算法】【DFS】Petrozavodsk Summer Training Camp 2016 Day 9: AtCoder Japanese Problems Selection, Thursday, September 1, 2016 Problem B. Point Pairs

    这份代码可以作为找割边的模板.割边分割出来的部分是无向图的 边-双连通分量. 平面上2*n+1个点,在同一横坐标上的点之间可以任意两两匹配.同一纵坐标上的点之间也可以.问你对于所有的点i,输出i被移除 ...

  3. ie8以下浏览器注意事项

    ie8以下ajax请求或者socket请求时一定要加二级域名:(目的不能垮域访问)

  4. Codeforces Beta Round #2 B. The least round way dp

    B. The least round way 题目连接: http://www.codeforces.com/contest/2/problem/B Description There is a sq ...

  5. Failed to Attach to Process ID Xcode 解决办法

    方法1. go to the Product menu and find the Edit Scheme menu there. While in Edit Scheme window, select ...

  6. JIRA Service Desk 3.9.2 没有许可证

    https://my.atlassian.com/license/evaluation Server ID BFHT-0XFL-3NM8-3KRF SEN SEN-L10880225 License ...

  7. Kali 2.0安装与使用指南

    阅读目录 (1)如果坚持用系统自带浏览器,其汉化方法: (2)如果有强迫症删了系统自带浏览器,然后重新安装了一个新的火狐可能遇到的问题: (3)如果你有火狐账号,你登陆了发现书签和插件没有同步? (4 ...

  8. window环境下备份与恢复(实际操作)

    C:\Documents and Settings\xuzhengzhu>sqlplus /nolog SQL*Plus: Release 10.2.0.1.0 - Production on ...

  9. 如何使用SQLMAP绕过WAF

    WAF(web应用防火墙)逐渐成为安全解决方案的标配之一.正因为有了它,许多公司甚至已经不在意web应用的漏洞.遗憾的是,并不是所有的waf都是不可绕过的!本文将向大家讲述,如何使用注入神器SQLMa ...

  10. decal in unity

    // Upgrade NOTE: commented out 'float4x4 _CameraToWorld', a built-in variable// Upgrade NOTE: replac ...