我们一起发布
数据库
1. 特别声明
本数据库没有依赖任何其他开源代码,全部自己在业余时间编写,当前只是实现了简单的增删查改功能,如果需要复杂查询,索引,自定义数据类型则需要自己开发。本源码仅限用于交流学习,任何商业用途都必须经过作者书面授权。
本人也正在开发V2版本,在V2版本中将可以任意扩展数据类型、数据存储、索引、函数,期待能够找到一些志同道合的朋友一块开发。
在使用本数据库时最好先了解下“标签驱动框架”,了解为何是标签,何为驱动,驱动通过标签实例化后为什么叫设备,设备的上下文是什么、配置是什么。在标签驱动框架上为什么扩展数据类型、存储、索引与函数不需要整体编译,只需要根据接口编译自己的模块,设备间的通信机制是什么。
本数据库全部模块基于标签驱动框架编写。
2. 准备工作
本代码全部使用C/C++编写。
VS2019环境安装,请在网络上搜索安装方式。
SVN客户端安装,请在网络上搜索安装方式。
Oss库源码下载:
svn://gitee.com/wjh_2010/ossLib
标签驱动框架及数据库源码下载:
svn://gitee.com/wjh_2010/labelDriver
Oss库与标签驱动框架的目录需要符合如下要求,否则需要自己调整配置。
符合此目录布局,下载下来后就可以直接编译,不需要配置。
3. 编译代码
3.1 框架路径
所有驱动编译后都会生成到该目录下,分为:drvs、lib、log、ui。
Drvs:驱动目录
Ui:界面驱动目录。
3.2 Html界面组件编译
打开html.sln,全部编译即可。
3.3 编译日志输出驱动
这边默认提供界面输出和文件输出,如果需要扩展日志输出则自己根据需求编写相应驱动。
3.4 编译数据库驱动
3.5 编译设置界面
4. 发布数据库
4.1 数据库的标签配置
<!-- UI的主配置程序
默认值规则:如果没有指定ID,ID默认为标签的名称,如果发现重复则ID相同。如果有指定ID,则ID为指定ID,多个标签指定同一个ID,则只创建同一个ID。如果没有指定配置文件路径,则默认为配置文件为./config目录下,文件名为ID+“.ini”。 如果有指定配置文件,则为指定的配置文件路径driver:指定当前界面绑定指定驱动实例化的设备。
-->
<html show="true">
<head>
<title>SD数据库</title>
</head>
<body >
<tab>
<about title="关于"></about>
<logMaster id="logMaster" configFile="./config/logMaster.ini" title="日志"></logMaster>
<tab title="数据库">
<DbInterface id="TsDb" configFile="./config/DbInterface.ini"></DbInterface>
<tableManage id="tableManage" configFile="./config/tableManage.ini" title="数据库表管理器"> </tableManage>
<sqlParser id="sqlParser" title="Sql解析器"> </sqlParser>
<tableData id="sqlParser" title="表数据管理"></tableData>
</tab>
<setting id="Setting" title="设置"></setting>
</tab>
</body>
</html>
说明:注释部分的文字需要后期慢慢体会,规则简单,尝试一下即可了解。
Xml 的每一个节点都是一个标签,对应指定的同名的驱动。一个标签实例化一个驱动和一个界面(如果不存在驱动或界面则不实例化)。运行起来后可以看日志输出。
4.2 数据库主模块介绍
模块 | 说明 |
DbInterface | 外部调用的入口,网络、消息通信的入口模块。 |
sqlParser | Sql解析模块 |
tableManage | 数据表管理模块 |
tableData | 表数据模块 |
4.3 发布程序
特别说明:当前只支持发布win32-debug版本,如需要发布其他的请联系作者。
进入生成目录:labelDriver\labelDriver\output\Win32-Debug。在此目录中已经将相关工程的生成的文件放到指定目录中。如下图所示:
labelDriver.cfg参考4.1的说明配置,在本开源中的每个项目也提供了默认的配置,可以直接拷贝到此目录。
各个目录和文件说明:
目录/文件 | 说明 |
labelView.exe | 框架主程序 |
labelDriver.cfg | 配置主程序实例化的设备信息 |
config | 规定存放配置文件的目录 |
data | 规定存放实例化设备生成的数据,运行中或者需要保存的数据 |
drvs | 驱动程序目录,存放所有驱动,框架从此目录加载驱动。 |
lib | 第三方依赖库 |
log | 日志文件 |
ui | 所有UI驱动,主程序界面支持的驱动由此目录加载。 |
在此目录下将不必要的文件删除,即可打包发布程序。
5. 使用数据库
5.1 新增数据库
当前只支持GBK的编码方式。
5.2 新增/修改表字段
数据库表会以设备的形式呈现,所以统一在设置界面中找到对应项进行修改。
5.3 操作数据库表
数据库表中对sql语句有些扩展,但是当前不支持复杂的查询。如insert\delete增加了return,可以将受影响的记录的指定字段返回。
5.4 查看数据库表
当前查看表数据时不可以直接删除记录。
6. 结语
数据库是一个庞大而复杂的工程,靠我个人之力无法支撑起这庞大的工程,更无法实现我心中想要的数据库。
我希望有一个数据库可以自己任意定义数据类型、运算符、函数,支持一维、二维、三维、…n维的结果运算,在统一的框架下每个人都可以扩展。数据库和数学合在一块,可以实现很高阶的复杂运算。和办公合在一块,就可以实现很复杂的图表展现;和日常是生活合在一块,就可以轻松实现生活中任意数据的存储….。
数据库是基础中的基础,但这基础希望能够找到志同道合的人一块去打磨。