各位高手能推荐一款c++访问数据库的成熟的库吗,必须支持win和linux

我们公司要开发一个软件,第一个版本将在windows上运行,随后会发布linux版本,这个软件可能连接到Oracle/MySql/SqlServer等多种数据库,考虑到时间和成本的问题,我认为用现成的库要比自己开发和维护更加快捷高效(正如caozhy所说,实现这个功能必须“写一个抽象类,访问数据库。不同的数据库,继承这个抽象类,把差异的代码写在里面,使用工厂设计模式。并且把这些代码条件编译(针对windows和linux)”,我想这个过程一定要花不少开发和维护时间),所以想选一个成熟的库,这个库除了必须满足能访问多种数据库,且支持Windows和Linux的需求外,最重要的是性能,稳定性,和友好易用,各位高手能介绍一下,分享一下宝贵的经验吗?谢谢!!

6个回答

我觉得OTL好像是个很好的选择,能满足我们的需求,本来是考虑用SQLAPI++ Library,但是它是要花钱的,而且好像没有提供比OTL更多的价值,问客服也未回复,暂时就不考虑用它了

zhuwt2008
zhuwt2008 对了,一样谢谢各位提供的参考意见!
接近 5 年之前 回复

本身不同数据库在不同平台都有各自的库和驱动。我之前说的意思是考虑到不同数据库本身sql查询的不同方言的适配。没有你想得那么复杂。

zhuwt2008
zhuwt2008 能不能告诉我,以您的预估,从无到有实现这个功能需要花多少天,初级水平要多少天,高级水平要多少天?
接近 5 年之前 回复

访问数据库的代码很容易找到,稍微修改下不是很难,不知道什么初级水平高级水平是什么意思,但是应该要不了你半天的功夫,因为这个不涉及任何底层的东西。
我说了,底层是数据库厂商的事情,你就是调用。也没有什么稳定不稳定可靠不可靠一说。

zhuwt2008
zhuwt2008 您所说的访问数据库的代码包括OTL吧,如果直接针对各数据库提供接口的写代码,最终也是写成一个类似OTL之类的库吧,我发现这个库不错,我打算就用它来实现,你说怎么样呢?
接近 5 年之前 回复

这个要看你的库是放在哪里的了,是单独有服务器还是在本机

本机的话直接用sqlite数据库最好用

网络的话最好的方法是写中间服务器,你的程序通过中间服务器连接数据库,这样要增加新数据库的支持你只需要改这个中间服务器的代码就可以了

linux下的数据库,开源和免费的有MySQL 商业版的有Oracle、Informix、DB2、Sybase

写中间服务器应该是最佳和最省力的方式了,中间服务器通过ADO等和数据库连接,这样你的中间服务器可以毫无压力的连接几乎所有主流数据库,你的客户端无论是在linux还是windows下都可以通过这个中间服务器访问任何主流数据库

kfrght
宝龙哥 这个数据库连接,最好的方式是自己写TCP/IP协议连接了,所有的主流数据库都是通过TCP/IP协议连接的
接近 5 年之前 回复
zhuwt2008
zhuwt2008 暂时不考虑用独立的中间服务器,关键是不管这个程序有没有独立部署,我必须选择一个连接各种数据库的方式,我想OTL是不错的
接近 5 年之前 回复

所谓成熟的库一般都是比较好的封装了,你要做的就是把这些库统一起来,你再包装一下,根据不同的平台,sql语句有一些不一样,然后就是调用不同的类库来实现数据库查询工作。比如设计模式中的工程模式。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问