一个通过rms写成的小型数据库引擎,简单的数据库引擎

本文介绍了一款名为Figo的小型RMS数据引擎,该引擎支持表格的基本操作及数据的增删改查等功能,并提供了简化的SQL语句。此外,还分享了一个使用Figo实现的电话本应用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2007年02月14日 星期三 09:25

最近做些项目发现要大量的应用rms的操作。感觉sun提供的rms操作API实在不是很方便。对数据的CRUD很麻烦。为此,我想在rms的基础上实现一个小型数据引擎是个不错的注意。我暂时把这个数据引擎叫做
Figo。中文名称叫做飞鸽。
我的引擎能做的事情是:
1。对表格的操作--添加,删除,暂时不提供对表格的修改。
2。对表格数据的操作--添加,删除,修改,查询(只能对一个关键字进行查询)

下面来看下我的SQL语句。
因为是一个简单而且小型的数据库。所以我把sql也简化了。下面是个完整的操作方法
1。添加表格
create table_name column_1 column_2 column_3 ......
drop table_name

2。对数据的操作
insert table_name column_1 ..... 对于这个操作,然后具体在api调用setString(index, value)
update table_name set ..... where column_1 = key;
select table_name f_id=1;

上面是理论,下面是实践,源代码包,包括一个简单的例子,

用自己写的rms引擎写的电话本     
昨天心情不好,在晚上睡不着的时候,就想了下,上次发的rms引擎都么有一个简单的例子呢,所以就写了个简单的电话本出来。
里面有的功能是:
1.添加
2.查询
3.列出所有的资料
没有实现的功能是,留给网友们自己设计。很简单的。哈
1.修改
2.删除
3.排序

源代码到这里下载
用自己写的rms引擎写的电话本

项目需求
设计一个电话本应用程序.
此程序的目的是用于学习,交流,不得用于商业应用,如果有需求请跟本人联系
程序功能
1.添加联系人包括联系资料是: 姓名, 手机, email, 地址.
2.修改联系人资料.
3.查询联系人资料,
4.删除联系人.


项目设计
1.采用本人写的简单的rms数据引擎. 也算是一个比较丰富的例子供大家学习交流
2.采用高级UI展示.
3.整体架构采用Web常用的方式MVC结构,充分展示j2me设计也可以很灵活.并且在性能方面的问题不大

这里介绍几个系统核心接口
ResultSet --- 对数据操作的结构集, 比如查询的时候将返回一个可用的结构.里面的用法跟JDBC差不多.
Query --- 对本人自定义的sql进行执行,执行返回ResultSet结构
DataBaseServer --- 对RMS引擎的启动,关闭.资源处理,摆脱直接操作RMS各个异常的困扰
QueryBuilder --- 静态工厂类,通过sql创建一个Query实例.



关于自定义SQL语法设计
比如创建表格语法是
create :friend: f_name :f_mobile :f_email :f_address
插入数据是:
Query q = QueryBuilder.builder("insert :friend :f_name :f_mobile :f_email: f_address ");
q.setString("f_name",friend.getName() );
q.setString("f_mobile", friend.getPhone());
q.setString("f_email", friend.getEmail());
q.setString("f_address", friend.getAddress());
q.execute();
删除数据是:
留给大家补充

修改数据是:
留给大家补充

删除表格是:
留给大家补充
### 解决编译时找不到 `Eigen/Eigen` 头文件的问题 当遇到类似于 `fatal error: Eigen/Eigen: No such file or directory` 的错误时,通常意味着编译器无法定位所需的库文件。对于这个问题,有几种常见的解决方法。 #### 安装 Eigen 库 如果尚未安装 Eigen 库,则需要先进行安装。可以通过包管理工具来简化这一过程: ```bash sudo apt-get update sudo apt-get install libeigen3-dev ``` 这会下载并安装最新版本的 Eigen 到系统的标准路径下[^1]。 #### 修改 CMakeLists.txt 配置 确保项目能够正确识别 Eigen 路径,在项目的 `CMakeLists.txt` 中加入如下配置语句: ```cmake find_package(Eigen3 REQUIRED) include_directories(${EIGEN3_INCLUDE_DIR}) ``` 这段代码告诉 CMake 去寻找 Eigen 并将其包含目录添加到编译选项里。这样可以使得后续源码中的 `#include <Eigen/Dense>` 或其他形式的引入变得有效[^2]。 #### 设置环境变量 另一种方式是在终端环境中设置相应的环境变量,比如 `CPATH` 来指定额外的头文件搜索位置。假设已经手动解压了 Eigen 至 `/opt/eigen3` 下面的话,可以在命令行执行下面的操作: ```bash export CPATH=/opt/eigen3:$CPATH ``` 或者更持久化的方式是将上述指令加到 `.bashrc` 文件里面去[^3]。 #### 校验依赖关系 有时即使完成了以上操作仍然会出现同样的问题,这时应该仔细检查整个工程的所有子模块及其各自的 `package.xml` 和 `CMakeLists.txt` 是否遗漏了对 Eigen 的声明或引用不当的情况。 ```xml <build_depend> eigen </build_depend> <!-- package.xml --> ``` 以及确认所有涉及的地方都已经按照官方文档说明进行了正确的集成处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值