一个用于将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>
时间: 2024-10-12 04:37:09

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

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

1 using System; 2 using System.Collections.Generic; 3 using System.Data; 4 using System.Reflection; 5 6 /// <summary> 7 /// 将DataTable数据源转换成实体类 8 /// </summary> 9 /// <typeparam name="T">实体</typeparam> 10 public static cl

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

开发过程中经常需要根据数据表编写对应的实体类,下面是使用sql语句快速将数据表转换成对应实体类的代码,使用时只需要将第一行'TableName'引号里面的字母换成具体的表名称就行了: declare @TableName sysname = 'TableName' declare @Result varchar(max) = 'public class ' + @TableName + ' {' select @Result = @Result + ' public ' + ColumnType

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

在多表查询的时候使用hibernate的sql查询的时候,一般返回的是object[]数组,或者可以使用 session.createSQLQuery(sql).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);     session. session.createSQLQuery(sql).addEntity(entity.class); /**     * 分页查询sql,sql语句不包含起始记录数和查询记录数     * @pa

分享一个免杀的反弹shell工具(python脚本转换成exe)

有时候网站服务器上有杀毒软件,我们上传的nc.exe.lcx.exe等工具都被杀了,这时候就需要一款免杀的工具来反弹shell. 这篇博客主要是依据国外的一片文章翻译而来,根据国外大佬的教程将Python脚本转换成exe程序即可免杀. 参考链接:https://medium.com/bugbountywriteup/antivirus-evasion-with-python-49185295caf1 第1步:安装Python2.7和Py2exe 一定要安装32位的Python 2.7和32位的P

怎么将oracle的sql文件转换成mysql的sql文件

将sql文件导入PowerDesigner中的方法(将oracle sql文件转换成mysql) 将xxxxxx.sql文件的数据库结构导入powerdesigner 的方法 步骤如下: 第一步:将要导入的库的所有表的表结构(不要表数据,只要表结构)导出成一个.sql文件. 第二步:在powerdesinger里找到 File >> Reverse Engineer >> Database ,如下图 图一,选择“share the DBMS definition”然后点击确定.注意

DataTable转换成实体

///<summary> ///DataRow转换成实体 ///</summary> ///<paramname="DataRow">DataRow</param> public static T ToModel<T>(DataRow row) where T : new() { if (row == null) { return default(T); } T t = new T(); PropertyInfo[] objP

PowerDesigner 逆向工程 从SQL文件转换成PDM 从PDM转成CDM

从SQL文件逆向工程到PDM: ①选择file -> Reverse Engineer - > Database ②在General选项卡中选择MySQL数据库,点击确定. ③using script file 选择你的sql文件,最后选择确定. 从PDM转成CDM: ①选择工具 -> General CDM (Ctrl + Shift + C) ②点击确定 PowerDesigner 逆向工程 从SQL文件转换成PDM 从PDM转成CDM,布布扣,bubuko.com

How to cast List&lt;Object&gt; to List&lt;MyClass&gt; Object集合转换成实体集合

List<Object> list = getList(); return (List<Customer>) list; Compiler says: cannot cast List<Object> to List<Customer> 不能将Object集合强制转换成实体集合! you can always cast any object to any type by up-casting it to Object first. in your case:

C# DataTable转换成实体列表 与 实体列表转换成DataTable

/// <summary> /// DataTable转换成实体列表 /// </summary> /// <typeparam name="T">实体 T </typeparam> /// <param name="table">datatable</param> /// <returns></returns> public static IList<T>