Roslyn+T4+EnvDTE项目完全自动化(3) ——生成c++代码

C++语法复杂,写一个示例通过T4可生成c++代码

需求:数据库,生成c++增,删,改,查代码

数据生成c++类,包含所有字段

自动识别数据的主键Key

查询生成赋值类字段,类型转换

通过类自动生成sql的where条件

类改变一些字段值,自动生成update sql

生成所有字段打印代码

class Actor_Entry; //数据库实体类 class Actor_UpdateEntry;//更新实体类 class Actor //实体增,删,改,查类 { public: bool Select(MYSQL* connect, const std::string& sql, std::vector<Actor_Entry>& out); bool SelectAll(MYSQL* connect, std::vector<Actor_Entry>& v); bool Update(MYSQL* connect, const Actor_UpdateEntry& set, const Actor_UpdateEntry& where, const std::string& whereSql); bool Update(MYSQL* connect, const std::string& whereSql); bool Insert(MYSQL* connect, Actor_UpdateEntry& v); bool Delete(MYSQL* connect, const Actor_UpdateEntry& v); }; class Actor_Entry { public: std::string ToString(); static Actor_Entry& New();//方便拷贝代码 short int GetKey() const; // 数据字段,及类型映射 // 主键(自动识别主键) short int Actor_Id; std::string First_Name; std::string Last_Name; std::string Last_Update; }; //字段发生改变,自动生成sql class Actor_UpdateEntry : public Actor_Entry { public: Actor_UpdateEntry(); static Actor_UpdateEntry& New();//方便拷贝代码 bool IsModified() const; void ResetModified(); void Set_Actor_Id(const short int value); bool Actor_Id_Modified; void Set_First_Name(const std::string& value); bool First_Name_Modified; void Set_Last_Name(const std::string& value); bool Last_Name_Modified; void Set_Last_Update(const std::string& value); bool Last_Update_Modified; };

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zggwsx.html