介绍一个C++的ORM工具ODB(二)
2013-03-07 17:42
316 查看
介绍一个C++的ORM工具ODB(二) | C瓜哥的博客
首先是不支持联合主键,而且没有CHECK约束、UNIQUE约束,这是官方都承认的。
虽然提供了延迟加载(lazyload)来改善效率,不过使用起来不方便
查询不灵活,只能在WHERE之后的部分设定查询条件,像查询存在(SELECT EXISTS)、查询数量(SELECT COUNT)都必须定义一个视图来实现,实在麻烦
批量删除比较慢,而且不灵活。高级一点只提供了按查询条件删除,但是这是远远不够的,虽然开放了执行SQL的接口,但是这样就破坏了ORM工具设计的初衷,也为以后维护带来了麻烦。
有触发器对应的功能(即软件实现),提供了callback(回调),支持触发器常用的事件,删除前后、新增前后等。不过我尝试添加一个删除触发另外一个表的数据删除编译失败了,不知为何
没有存储过程、游标对应的软件实现
下面是附件源码的运行结果:
附件下载:
http://dl.dbank.com/c07l5w5k7x
(需要去官网下载ODB编译并加入到VC目录下,推荐使用VS2008SP1以上版本的IDE,或者使用boost库,因为需要用到智能指针)
介绍一个C++的ORM工具ODB(二)
写了个小例子,全面地感受了下ODB(1.7.0版)。总体来说还是不错,不过应用到实际的项目中,问题还是比较大。首先是不支持联合主键,而且没有CHECK约束、UNIQUE约束,这是官方都承认的。
虽然提供了延迟加载(lazyload)来改善效率,不过使用起来不方便
查询不灵活,只能在WHERE之后的部分设定查询条件,像查询存在(SELECT EXISTS)、查询数量(SELECT COUNT)都必须定义一个视图来实现,实在麻烦
批量删除比较慢,而且不灵活。高级一点只提供了按查询条件删除,但是这是远远不够的,虽然开放了执行SQL的接口,但是这样就破坏了ORM工具设计的初衷,也为以后维护带来了麻烦。
有触发器对应的功能(即软件实现),提供了callback(回调),支持触发器常用的事件,删除前后、新增前后等。不过我尝试添加一个删除触发另外一个表的数据删除编译失败了,不知为何
没有存储过程、游标对应的软件实现
下面是附件源码的运行结果:
附件下载:
http://dl.dbank.com/c07l5w5k7x
(需要去官网下载ODB编译并加入到VC目录下,推荐使用VS2008SP1以上版本的IDE,或者使用boost库,因为需要用到智能指针)
相关文章推荐
- 介绍一个C++的ORM工具ODB
- 介绍一个C++的ORM工具ODB(一)
- 服务器 介绍一个C++的ORM工具ODB
- 介绍一个C++的ORM工具ODB
- 介绍一个轻量级的C++开发工具——Relo
- 介绍一个 C/C++ 、C#、JAVA 代码美化工具
- C++ ORM ODB 入门介绍(一)
- C++ ORM ODB 入门介绍(二)
- C++ ORM ODB 入门介绍(一)
- C++ ORM ODB 入门介绍(二)
- 介绍一个 C/C++ 、C#、JAVA 代码美化工具
- 介绍一个 C/C++ 、C#、JAVA 代码美化工具
- 介绍一个c++检测内存泄露工具:Visual Leak Detector
- 介绍一个 C/C++ 、C#、JAVA 代码美化工具
- C++实现的ORM映射工具主要类介绍(一)
- 介绍一个 C/C++ 、C#、JAVA 代码美化工具
- C++实现的ORM映射工具主要类介绍(一)
- jphone项目设计介绍(一个基于C++的应用程序框架以及软电话和日志服务器应用)
- 一个关于读取指定路径下文件名称的小工具(C++)
- 介绍一个好用的工具类库commons-beanutils