c# 如何實(shí)現(xiàn)代碼生成器
做了2,3年的java-web,始終木有逃離所謂基礎(chǔ)業(yè)務(wù),增刪改查這些一成不變的東西寫起來浪費(fèi)大量時(shí)間,于是做了個(gè)簡單的代碼生成器快速生成
代碼生成器的原理其實(shí)很簡單,都是基于模板實(shí)現(xiàn)替換,模板基于是Nvelocity。
部分代碼展示:【目前只支持mysql 、oracle、sqlite 三種數(shù)據(jù)庫的連接 有需要 可以自己增加】
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;
}
}
}
演示界面:
數(shù)據(jù)庫配置

模板配置:


生成:

內(nèi)置有一套java的模板,調(diào)用的是jar包 【需要安裝jdk,所有說是c# c++ java的文件存放位置 實(shí)際生成的后綴都是.java或.jsp .html】


源碼地址:https://gitee.com/ten-ken/per...
以上就是c# 如何實(shí)現(xiàn)代碼生成器的詳細(xì)內(nèi)容,更多關(guān)于c# 代碼生成器的資料請關(guān)注腳本之家其它相關(guān)文章!
- C#實(shí)現(xiàn)文字視頻生成器的示例代碼
- C#實(shí)現(xiàn)封面圖片生成器的示例代碼
- C#設(shè)計(jì)模式之建造者模式生成器模式示例詳解
- Python實(shí)現(xiàn)C#代碼生成器應(yīng)用服務(wù)于Unity示例解析
- C#設(shè)計(jì)模式實(shí)現(xiàn)之生成器模式和責(zé)任鏈模式
- C# Guid長度雪花簡單生成器的示例代碼
- C#設(shè)計(jì)模式之Builder生成器模式解決帶老婆配置電腦問題實(shí)例
- 詳解C#設(shè)計(jì)模式編程中生成器模式的使用
- 詳解C#中有趣的?SourceGenerator生成器
相關(guān)文章
WPF實(shí)現(xiàn)雷達(dá)圖(仿英雄聯(lián)盟)的示例代碼
這篇文章主要介紹了如何利用WPF實(shí)現(xiàn)雷達(dá)圖(仿英雄聯(lián)盟)的繪制,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)或工作有一定幫助,需要的可以參考一下2022-07-07
DevExpress之ChartControl實(shí)現(xiàn)餅狀圖百分比演示實(shí)例
這篇文章主要介紹了DevExpress之ChartControl實(shí)現(xiàn)餅狀圖百分比演示的方法,實(shí)例講述了窗體與圖形繪制函數(shù)的用法,需要的朋友可以參考下2014-10-10
unity實(shí)現(xiàn)鼠標(biāo)跟隨(ITween)
這篇文章主要為大家詳細(xì)介紹了unity實(shí)現(xiàn)鼠標(biāo)跟隨,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-04-04
C#實(shí)現(xiàn)動(dòng)態(tài)顯示及動(dòng)態(tài)移除圖片方法
這篇文章主要介紹了C#實(shí)現(xiàn)動(dòng)態(tài)顯示及動(dòng)態(tài)移除圖片方法,對(duì)于C#的初學(xué)者了解圖像操作有一定的幫助,需要的朋友可以參考下2014-07-07
C#?winform實(shí)現(xiàn)多語言切換功能
這篇文章主要為大家詳細(xì)介紹了如何使用C#?winform實(shí)現(xiàn)多語言切換功能,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以了解下2024-02-02
數(shù)字金額大寫轉(zhuǎn)換器制作代碼分享(人民幣大寫轉(zhuǎn)換)
一個(gè)人民幣大寫的擴(kuò)展方法,可以做成數(shù)字金額大寫轉(zhuǎn)換器,大家參考使用吧2013-12-12

