问题描述
- c++ 连接数据库什么方式最好?要在windows和linux都能编译运行
-
c++ 连接主流数据库什么方式最好呢,最好能介绍一下各种方式的优缺点,谢谢!SqlApi怎样呢?有没有开源的免费的?
解决方案
无非就是把差异的代码分开来。如果是C++,你可以写一个抽象类,访问数据库。你的程序操作这个抽象类。
然后不同的数据库,继承这个抽象类,把差异的代码写在里面。
而使用工厂设计模式,并且把这些代码条件编译。
这样你的程序代码只维护一份,就能适应不同的数据库了。
解决方案二:
用sqlite,两个平台都支持。
最简单的是使用条件编译,将两个平台不同的代码分别写出来。
解决方案三:
sqlite是轻量级的,mysql功能更强大,目前也支持多个平台,一般用数据库提供的api方式连接数据库比较方便
解决方案四:
你可以试试ODB看看。
ODB is an open-source, cross-platform, and cross-database object-relational mapping (ORM) system for C++. It allows you to persist C++ objects to a relational database without having to deal with tables, columns, or SQL and without manually writing any mapping code. ODB supports MySQL, SQLite, PostgreSQL, Oracle, and Microsoft SQL Server relational databases as well as C++98/03 and C++11 language standards. It also comes with optional profiles for Boost and Qt which allow you to seamlessly use value types, containers, and smart pointers from these libraries in your persistent C++ classes.