美文网首页c#专题
C#实现代码生成器【客户端】

C#实现代码生成器【客户端】

作者: 程序员ken | 来源:发表于2020-12-13 20:26 被阅读0次

    做了2,3年的java-web,始终木有逃离所谓基础业务,增删改查这些一成不变的东西写起来浪费大量时间,于是做了个简单的代码生成器快速生成

    代码生成器的原理其实很简单,都是基于模板实现替换,模板基于是Nvelocity。

    部分代码展示:【目前只支持mysql 、oracle、sqlite 三种数据库的连接 有需要 可以自己增加】

    sing System;
    using System.Collections.Generic;
    using System.Data;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using personal_manage.Common.DAL;
    using personal_manage.Common.dto;
    using personal_manage.DAL.adapter;
    using personal_manage.Models.entity;
    
    namespace personal_manage.BLL.adapter
    {
        public class DbBLL
        {
            public List<TableInfo> SelectTableList(CodeProjectDbConfigInfo codeProjectDbConfigInfo, string tableKeyword)
            {
                if (codeProjectDbConfigInfo.DbType == "Mysql" )
                {
                  return  DbAdapter.SelectTableNameByMySql(codeProjectDbConfigInfo.DbConnect, codeProjectDbConfigInfo.DbName, tableKeyword);
                }else if(codeProjectDbConfigInfo.DbType == "Oracle")
                {
                    return DbAdapter.SelectTableNameByOracle(codeProjectDbConfigInfo.DbConnect, codeProjectDbConfigInfo.DbName, tableKeyword);
                }
                else if (codeProjectDbConfigInfo.DbType == "Sqlite")
                {
                    return DbAdapter.SelectTableNameBySqlite(codeProjectDbConfigInfo.DbConnect, codeProjectDbConfigInfo.DbName, tableKeyword);
                }
    
    
                return null;
            }
    
    
            public List<TableFieldInfo> SelectTableFields(CodeProjectDbConfigInfo codeProjectDbConfigInfo, string tableName)
            {
                if (codeProjectDbConfigInfo.DbType == "Mysql")
                {
                    return DbAdapter.SelectTableFieldsByMySql(codeProjectDbConfigInfo.DbConnect, codeProjectDbConfigInfo.DbName, tableName);
                }
                else if (codeProjectDbConfigInfo.DbType == "Oracle")
                {
                    return DbAdapter.SelectTableFieldsByOracle(codeProjectDbConfigInfo.DbConnect, codeProjectDbConfigInfo.DbName, tableName);
                }
                else if (codeProjectDbConfigInfo.DbType == "Sqlite")
                {
                    return DbAdapter.SelectTableFieldsBySqlite(codeProjectDbConfigInfo.DbConnect, codeProjectDbConfigInfo.DbName, tableName);
                }
    
                return null;
            }
        }
    }
    

    演示界面:
    数据库配置


    file

    模板配置:

    file file

    生成:

    file

    内置有一套java的模板,调用的是jar包 【需要安装jdk,所有说是c# c++ java的文件存放位置 实际生成的后缀都是.java或.jsp .html】

    file
    file

    源码地址:https://gitee.com/ten-ken/personal-manage.git

    本文来源于:程序员ken,专属平台有csdn、思否(SegmentFault)、 简书、 开源中国(oschina)、掘金,转载请注明出处。

    相关文章

      网友评论

        本文标题:C#实现代码生成器【客户端】

        本文链接:https://www.haomeiwen.com/subject/puipgktx.html