一个用于将sql脚本转换成实体类的js代码
以前写过一段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代码的更多相关文章
- C# 将DataTable数据源转换成实体类
using System; using System.Collections.Generic; using System.Data; using System.Reflection; /// < ...
- 使用Sql语句快速将数据表转换成实体类
开发过程中经常需要根据数据表编写对应的实体类,下面是使用sql语句快速将数据表转换成对应实体类的代码,使用时只需要将第一行'TableName'引号里面的字母换成具体的表名称就行了: declare ...
- hibernate sql查询后对象转换成实体类
在多表查询的时候使用hibernate的sql查询的时候,一般返回的是object[]数组,或者可以使用 session.createSQLQuery(sql).setResultTransform ...
- 远程调用get和post请求 将返回结果转换成实体类
package org.springblade.desk.utils; import org.apache.http.client.ResponseHandler; import org.apache ...
- js-input框中写入的小写小写字母全部转换成大写字母的js代码
<input type="text" id="blinitials" name="blinitials" onkeyup=" ...
- sql hibernate查询转换成实体或对应的VO Transformers
sql查询转换成实体或对应的VO Transformers //addScalar("id") 默认查询出来的id是全部大写的(sql起别名也无效,所以使用.addScalar(& ...
- DataTable转换成实体
public static class DataTableToEntity { /// <summary> /// 将DataTable数据源转换成实体类 /// </summary ...
- xml格式报文的拼装,和解析成实体类
我们的微信支付,使用的是第三方的支付,某银行的微信支持渠道.所有的接口请求.应答都是xml格式报文,这样就需要用到xml格式报文的拼装和解析,这儿简单讲一下. 拼接xml格式报文. 从页面表单提交和配 ...
- 使用py2exe将python脚本转换成exe可执行文件
Python(wiki en chs)是一门弱类型解释型脚本语言,拥有动态类型系统和垃圾回收功能,支持多种编程范式:面向对象.命令式.函数式和过程式编程. 由于Python拥有一个巨大而广泛的标准库 ...
随机推荐
- 安装SQL2008时显示必须重启计算机才可以继续安装的错误—解决办法
数据库学习已经有一段时间了,前几天进入了SQL视频的学习,在安装数据库的时候,出现问题,总显示重启失败 ,无法继续安装,如图所示 出现这种问题 ,应该如何解决呢? 解决方法如下: (1).开始菜单-搜 ...
- luogu P1016 旅行家的预算
题目描述 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的).给定两个城市之间的距离D1.汽车油箱的容量C(以升为单位).每升汽油能行驶的距离D2.出发点每升汽油价格P和沿 ...
- BZOJ 1934 [Shoi2007]Vote 善意的投票(最小割)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1934 [题目大意] 每个人对于投票都有自己原来的观点:1或者0, 他可以违背自己原来的 ...
- SNAT的作用是什么
SNAT,可能有人觉得奇怪,好好的为什么要进行ip地址转换啊,为了弄懂这个问题,我们要看一下局域网用户上公网的原理,假设内网主机A(192.168.2.8)要和外网主机B(61.132.62.131) ...
- Android Content Provider Security(转)
四大组件之一-content provider安全详解 原帖地址:http://drops.wooyun.org/tips/4314 0x00 科普 内容提供器用来存放和获取数据并使这些数据可以被所有 ...
- 如何使用 DBCC MEMORYSTATUS 命令来监视 SQL Server 2005 中的内存使用情况
https://technet.microsoft.com/en-us/solutionaccelerators/dd537566.aspx 注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完 ...
- 用Hexo搭建属于自己的iOS技术博客,搬家了
搬家了,本来还打算在博客园混一段时间的,可是当我看到Hexo的时候,已经难以抵挡它的诱惑,简单不简约的界面让我花了整整一天的时间,买域名的过程中发生一点小问题导致DNS解析错误了,但还是成功了.欢迎朋 ...
- iOS- dispatch_semaphore和NSOperationQueue并发
并发:同一个时间内运行多个任务.又叫共行性,是指处理多个同时性活动的能力. 并行:是指两个并发的任务同时发生. 并发不一定并行,并发不一定要同时发生. 举个例子: 有两个快递分别要送到目的地,有以下两 ...
- jquery动态添加表单数据
动态添加用户 实现代码 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html ...
- [转]SQLServer和Oracle,存储过程区别,常用函数对比
本文转自:http://www.cnblogs.com/neru/archive/2011/08/18/2144049.html 以前一直用sqlserver,只有很少的一点oracle的经验,现在要 ...