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_ity;
免费模板生成器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】
以上就是c# 如何实现代码⽣成器的详细内容,更多关于c# 代码⽣成器的资料请关注其它相关⽂章!