时间:2021-05-20
做了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# 代码生成器的资料请关注其它相关文章!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
1.前言前几天写了篇关于MybatisPlus代码生成器的文章,不少同学私下问我这个代码生成器是如何运作的,为什么要用到一些模板引擎,所以今天来说明下代码生成器
生成器就是自己用python代码写的迭代器,生成器的本质就是迭代器。通过以下两种方式构建一个生成器:1、通过生成器函数2、生成器表达式生成器函数:函数deffu
什么是生成器?生成器是一个包含了特殊关键字yield的函数。当被调用的时候,生成器函数返回一个生成器。可以使用send,throw,close方法让生成器和外界
问题你想使用生成器(协程)替代系统线程来实现并发。这个有时又被称为用户级线程或绿色线程。解决方案要使用生成器实现自己的并发,你首先要对生成器函数和yield语句
本文所述实例有别于网上常见的由代码生成器生成的sqlhelper,比如动软、CodeSmith等生成的。其实代码生成器生成的sqlhelper很多的方法在实际开