c++ 连接数据库什么方式最好?要在windows和linux都能编译运行

问题描述

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.

时间: 2024-12-25 20:48:35

c++ 连接数据库什么方式最好?要在windows和linux都能编译运行的相关文章

上手指南:开启你的Windows平台Linux子系统之路

在我的Windows开发者PC端安装了两个Linux发行版,它们不是虚拟机或双启动系统,也没有去寻找下载页面和解压缩安装文件通常路线,而是到Windows商店搜索Linux,选择想要的发行版并且安装上.下载完毕之后,打开终端窗口并填写用户名和密码,开始安装. 我运行了最新版本的Windows10系统,添加了Windows平台Linux子系统最新功能.引入了Windows10周年升级版和Windows10最新升级版本.Windows平台Linux子系统(WSL)是微软对于"如何让开发人员再次使用W

Windows与Linux换行符差别所引起的问题的解决方法

  windows和linux下的换行符是不同的.一般操作系统上的运行库会自动决定文本文件的换行格式. 如一个程序在windows上运行就生成CR/LF换行格式的文本文件,而在linux上运行就生成LF格式换行的文本文件. 在一个平台上使用另一种换行符的文件文件可能会带来意想不到的问题, 特别是在编辑程序代码时. 有时候代码在编辑器中显示正常, 但在编辑时却会因为换行符问题而出错. 很多文本/代码编辑器带有换行符转换功能, 使用这个功能可以将文本文件中的换行符在不同格式单互换. 在不同平台间使用

Dataguard for windows to linux(云上)异构加阿里云容灾配置

windows和linux平台可以实现跨平台的异构Dataguard,配置方法和同平台没有太大区别,注意目录的格式. 1.环境准备 1.1 主库开启归档 -----开启归档 alter system set LOG_ARCHIVE_DEST_1='LOCATION=/archivelog' scope=both; shutdown immediate start mount alter database archivelog; 1.2 配置监听 --备库监听 SID_LIST_LISTENER

多核时代:并行程序设计探讨(3)——Windows和Linux对决(多进程多线程)

并行程序设计探讨(3)--Windows和Linux对决(多进程多线程) 前面的博文经过分析总结,最后得出两种并行技术:多进程多线程.多机协作.对于多进程和多线程来说,最有代表性且最常见的的莫过于Windows和Linux(作为UNIX类操作系统的代表,下同)这两个操作系统了. 真是冤家路窄,Windows和Linux这对冤家在这里又碰面了!! 当然,我这里不是要挑起Windows和Linux谁优谁劣的争论,对于一个真正的技术人来说,Windows和Linux本身并没有优劣之分,只有在不同的使用

多核时代:并行程序设计探讨(5)——Windows和Linux对决(进程间同步)

Windows和Linux对决(线程间同步) 1.1        Windows线程同步 1.1.1   关键代码区Critical Section 所谓"关键代码区",相信大家看名字也能理解个大概了.首先:它很关键,第二:它是代码区.之所以关键,当然目的就是每次只能一个线程能够进入:既然是代码区,那就是只能在一组拥有同样代码的线程中用. 那什么情况下会用到关键代码区呢?当然是要保护多个线程都会用到的东西了,说到这里,想必你已经猜到了:全局变量和静态变量. 1.1.2   互斥Mut

多核时代:并行程序设计探讨(4)——Windows和Linux对决(进程间通信)

                             进程间通信 多进程和多线程本质上就是将原来一个进程或者线程处理的任务分给了多个进程或者线程,也可以说是将原来一个CPU处理的任务分给了多个CPU处理,类似于随着生产力的发展,原来一个人包打天下的个人英雄主义时代被分工合作的团队取代一样. 既然是一个团队,就必然涉及到分工合作问题,并行程序的设计本质上就是解决"分工"和"合作"的问题.其中"分工"主要是后面讲到"并行程序设计模式&q

怎样在Windows和Linux下写相同的代码

目前,Linux在国内受到了越来越多的业内人士和用户的青睐.相信在不久的将来,在国内为Linux开发 的应用软件将会有很大的增加(这不,金山正在招兵买马移植WPS呢).由于未来将会是Windows和Linux两强鼎立的格局,怎样能够使得开发的软件保持最大的可移植性就成了一个很重要的问题.小弟经过一段时间的摸索,找到了这个问题的圆满解答. 在Linux下,所有的开发工具和库都属于自由软件,可以免费获得并且功能强大.如果这些工具和库都有相应的Windows版,那么我们就能够在Windows和Linu

如何在Windows下使用Linux系统来编译和运行程序?

很多开发人员都有这样的疑问:自己平时是在Windows下面办公的,而自己编写的程序的运行环境又是Linux的,如何从Windows切换到Linux呢?是不是要专门到Linux机器上去编写代码呢? 实际上,只要在Windows下安装一个叫做SecureCRT的软件和一个叫做FileZilla的软件,便可轻松解决问题.   SecureCRT和FileZilla简介 SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows下登录Linux服务器主机的软件. F

分析Windows和Linux动态库_unix linux

    摘要:动态链接库技术实现和设计程序常用的技术,在Windows和Linux系统中都有动态库的概念,采用动态库可以有效的减少程序大小,节省空间,提高效率,增加程序的可扩展性,便于模块化管理.但不同操作系统的动态库由于格式 不同,在需要不同操作系统调用时需要进行动态库程序移植.本文分析和比较了两种操作系统动态库技术,并给出了将Visual C++编制的动态库移植到Linux上的方法和经验. 1.引言 动态库(Dynamic Link Library abbr,DLL)技术是程序设计中经常采用