linux下C++连接sqlite3

linux下,c++连接sqlite3,不需要额外的安装依赖库,linux自带了sqlite3,在编译的时候,只需要将sqlite3的库加入编译参数中即可。sqlite3数据库可以指定数据存储的路径,我们一般使用类似testsqlite3.db这样的文件命名数据库文件,在命令行下连接testsqlite3.db,只需要运行sqlite3 testsqlite3.db即可。无需用户名和密码,数据库也不用指定,本身testsqlite3就是数据库名了,可以直接在库中建表,插入数据。

使用C++连接sqlite3,常用的api就那么几个:

  • sqlite3_open() 打开数据库,相当于建立连接。
  • sqlite3_exec() 执行sql语句,返回值是执行的结果,如果参数sql是查询语句,需要传入一个回调函数,处理查询结果。
  • sqlite3_close() 关闭数据库连接。

这里,编写一个向数据库表user中插入一行记录,然后查询所有记录的代码:

#include 
#include 
#include "sqlite3.h"
using namespace std;
static int callback(void *data,int args_num,char **argv,char **argc){
   for(int i=0;i

运行之前,需要编译,生成可执行程序。

运行编译命令 :g++ -lsqlite3 -o main main.cpp  

编译参数中通过-lsqlite3加入了sqlite3库,如果不加参数编译会报错。

运行结果截图:

linux下C++连接sqlite3_第1张图片

普通的打开数据库连接,插入记录,甚至是执行查询返回值都是int类型,表示执行结果是否成功。如果是执行查询语句,我们需要在sqlite3_exec()函数中,传入一个回调函数callback(void *data,int args_num,char **argv,char **argc),用来处理查询结果。 回调函数的参数中args_num表示查询结果的总条数,argv,argc是数组,分别表示记录的值和记录的列名称。

你可能感兴趣的:(c++)