mysql c 代码生成器_敢不敢更懒,自己编写的mysql C++自动代码生成工具

本文介绍了一款使用C++编写的跨平台代码生成工具,能够自动生成MySQL调用端核心代码,包括增删改查、连接池、SQL脚本、类结构、测试接口和配置文件读写等。工具采用XML作为描述文档,支持数据库配置、多种操作类型和自定义功能,简化重复性工作,提高开发效率。
摘要由CSDN通过智能技术生成

我一直有一个梦想,就是那天能够让计算机去帮我编写代码,而我只需要将我自己的规划告诉它,就可以自动生成我需要的代码。

梦想永远是梦想,一定要自己一步步的去实现,否则和咸鱼有什么区别?

自动化代码生成,一直是我这几年正在一步步实现的想法。

毕竟,一个系统中不客气的说50%的代码,实际是重复性较强的代码,人为去编写重复性的代码,很可能会出错,而且,不同的人,代码风格,水平,习惯是不同的,写出来的代码,排错和代码走查非本人都是比较麻烦的。于是开发了一系列代码自动生成工具,减少人为因素的干扰,涉及到数据库,脚本(Lua),IO(socket,file,RPC)等等。

不说废话了,

于是自己用C++编写了一个跨平台的代码生成工具,支持生成mysql调用端的核心部分代码。让"代码"写"代码"。

实现目标:

(1)简单的SQL增,删,改,查 代码生成。(C++代码结构)

(2)自动编写MYSQL的连接池技术。

(3)同时生成数据库的SQL脚本(可以直接创建数据库表结构)

(4)自动生成对应SQL语句的C++类结构和接口。供上层系统调用。

(5)自动生成可以自己检测的数据函数测试接口。

(6)自动生成数据库配置文件的相关创建,读写。

(7)代码支持自动融合,也就是说,已经编写的代码,在下次生成中,如果未发生变化,就不会被重写。(保证一些特殊业务逻辑的代码,不会随着程序迭代而反复融合,而是工具会自动保留这些特殊的代码)

好了,上述就是目标了。

为了实现上述功能,我选用了XML作为我的描述文档。

首先,工程代码可以在VS2012或者Linux GCC4.4.1以上的版本完美编译,编译完的工具,生成的代码,可以支持windows和Linux跨平台编译,方便调试和测试。

工具是C++自己写的,在这里就不做过多的描述。只是让大家看看如何使用。

首先,工具有一个目录,是/bin/XMLData/

这里,你可以建立任意个XML配置文件,每个文件,你都可以建立任意张数据表和丢应的代码文件。

举个例子,比如,你建立一个叫做db_tps_global.xml的文件。

每一个表,都是一个的元素集合,你可以根据你的需要,建立任何多个文件(按照表分类),任意多个,工具会扫描这个目录下的所有xml文件,生成对应的C++代码。

我一个个来解释其中的含义

database

数据库名称,这个参数必须指定,指定于你的数据库实例名

tb_useridlimit

你要建立的表名

CUserIdLimit

对应这个表的C++类名,主要和表字段一一映射形成的类

key

这个指的是生成的查询条件,可以是多个,以逗号隔开

func

生成的C++代码支持那种操作,可以任意组合,自多支持四种,select;insert;update;delete;

desc

表名的描述字段,用于文档支持

这些都是一个表的基本信息,你可以任意设置成你的表信息。

子集可以是多个

name

数据库字段名称,同时也是类中对应字段名称

dbtype

数据类型,目前支持数据库基本基本类型(以后可以持续扩展支持)

classtype

类对应类型,对应数据类型的字段类型(以后可以持续扩展支持)

value

类数据的初始值,在类初始化的时候使用

上面的例子,就是要生成一个database="db_tps_global" table="tb_useridlimit"表的全部代码。

生成的代码,会自动新建一个目录为DBTest

在这里面,你会看到几个目录

cfg

数据库配置文件目录,自动生成数据库

DataWrapper

生成对应数据库表的所有类文件都放在这里

DBScript

生成mysql数据库脚本

DBServer

自动生成DBserver启动代码,可以用于生成自动测试集

DBWrapper

生成mysql数据链接池的代码

rapidjson

读写json字段相关代码,可以支持生成Json字段的mysql字段,并支持生成与之对应还原成类结构的C++读写json代码。

ShareMemory

生成读写共享内存映射相关的代码,这部分与我的业务相关,我需要程序启动后把一部分数据读写到共享内存中去。

关于共享内存和json,我目前已经开发支持了,因为我的业务需要。

这部分代码,会按照我的要求自动生成相关代码。

对应一个配置文件的例子

通过设置相关参数,我可以生成支持共享内存的相关代码。这部分也不用我自己手写了。

另外,对于一些特殊的SQL语句,因为不涉及表创建,可能还有关联查询,这部分代码我专门用了一个类型去描述。

这里可以生成我想要的特殊SQL代码,目前仅支持查询代码的生成,以后扩展支持其他的代码。

目前,这个工具在我的某些项目中使用,生成超过3000行以上的代码,节省了我的开发时间。如果有兴趣,大家可以从github上下载它,随意玩耍,如果有需求,也可以给我意见完善它哈。

github地址:https://github.com/freeeyes/XML2DataBase 或者直接找我要也行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值