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