c# 如何实现代码生成器

 更新时间:2020年12月14日 08:36:42   作者:程序员ken  
这篇文章主要介绍了c# 如何实现代码生成器,帮助大家更好的理解和使用c# 编程语言,感兴趣的朋友可以了解下

做了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;
    }
  }
}

演示界面:
数据库配置

模板配置:

生成:

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

源码地址:https://gitee.com/ten-ken/per...

以上就是c# 如何实现代码生成器的详细内容,更多关于c# 代码生成器的资料请关注脚本之家其它相关文章!

相关文章

  • C# Winform自动更新程序实例详解

    C# Winform自动更新程序实例详解

    这篇文章主要为大家详细介绍了C# Winform 自动更新程序实例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • C#导出文本内容到word文档的方法

    C#导出文本内容到word文档的方法

    这篇文章主要介绍了C#导出文本内容到word文档的方法,涉及C#操作word文档的相关技巧,需要的朋友可以参考下
    2015-04-04
  • C#实现对象的序列化和反序列化

    C#实现对象的序列化和反序列化

    这篇文章介绍了C#实现对象序列化和反序列化的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • C#实现钟表程序设计

    C#实现钟表程序设计

    这篇文章主要为大家详细介绍了C#实现钟表程序设计,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • C# Dynamic之:ExpandoObject,DynamicObject,DynamicMetaOb的应用(下)

    C# Dynamic之:ExpandoObject,DynamicObject,DynamicMetaOb的应用(下)

    本篇文章是对C#中ExpandoObject,DynamicObject,DynamicMetaOb的应用进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • c# TreeView添加右键快键菜单有两种方法

    c# TreeView添加右键快键菜单有两种方法

    c# TreeView添加右键快键菜单有两种方法,需要的朋友可以参考一下
    2013-04-04
  • Unity2021发布WebGL与网页交互问题的解决

    Unity2021发布WebGL与网页交互问题的解决

    本文主要介绍了Unity2021发布WebGL与网页交互问题的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • C# 爬虫简单教程

    C# 爬虫简单教程

    这篇文章主要介绍了C# 爬虫的简单教程,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下
    2020-12-12
  • C#使用private font改变PDF文件的字体详解

    C#使用private font改变PDF文件的字体详解

    这篇文章主要给大家介绍了关于C#使用private font改变PDF文件的字体的相关资料,文中通过示例代码以及图片介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-07-07
  • C#简单配置类及数据绑定

    C#简单配置类及数据绑定

    这篇文章主要介绍了C#简单配置类及数据绑定,原理比较简单,适用于一些小型项目。主要实现保存配置到json文件、从文件或实例加载配置类的属性值、数据绑定到界面控件的功能,需要的朋友可以参考一下
    2021-11-11

最新评论