第七天:gec6818开发板QT和Ubuntu中QT安装连接sqlite3数据库驱动环境保姆教程

sqlite3数据库简介

复制代码
帮助文档 SQL Programming 

大多数关系型数的操作步骤:
    1)连接数据库 
        多数关系型数据库都是C/S模型 (Client/Server)
        sqlite3是一个本地的单文件关系型数据库,同样也有"连接"的过程 

    2)操作数据库 
        作为程序员,对数据库最常见的操作 就是 增删改查

    3)关闭数据库 
        连接也是一种资源,用完记得释放 


Qt中 的数据库功能是放在一个单独的模块中,模块名为 sql  
    所以 如果需要使用Qt的数据库功能,需要在pro文件中 添加如下的指令: 
        QT  +=  sql  

Qt的sql模块中包含了大约10几个类型,常用的以下的三个:
    (1) QSqlDatabase 
        用于处理数据库的连接,包括 创建连接对象、设置连接属性、关闭连接

    (2) QSqlQuery
        用于执行SQL语句

    (3) QSqlError
        用于处理数据库错误,提供可读的错误信息 


连接数据库的典型代码:

    //初始化连接对象,使用静态函数addDatabase,参数是数据库类型 QSQLITE -- sqlite3
    db = QSqlDatabase::addDatabase("QSQLITE");

    //设置数据库名,建议带路径,如果存在,直接打开,如果不存在,则自带创建
    db.setDatabaseName("../test.db");

    //打开连接, 成功或者失败,给出相应的提示对话框
    bool ok = db.open();
    if( !ok )
    {
        QMessageBox::information( this, "tip", db.lastError().text() );
        return ;
    }
    QMessageBox::information(this, "tip", "connect db success! ");



执行SQL语句的典型代码:
    //创建用来执行SQL语句的对象
    QSqlQuery query( db );

    //准备SQL语句
    QString createsql = QString( "select username, passwd from t_user where username='%1';").arg(ui->lineEdit->text());
    qDebug() << createsql;

    //执行SQL语句
    if( !query.exec( createsql ) )
    {
        qDebug() << "select error : " << query.lastError().text();
        return ;
    }

    //QMessageBox::information( this, "提示", "select success! ");

    //遍历结果集
    while( query.next() )
    {
        //value用来获取一条记录(行)的列的值,可以使用索引(下标),也可以使用列名
        //value返回的是一个共用体,必须转换成该列的值真正的类型才来使用
        QString username = query.value(0).toString();
        QString passwd = query.value("passwd").toString();
        qDebug() << username << " -- " << passwd;
    }

Ubuntu和gec6818开发板一般都会自带sqlite3数据库驱动,所以不需要另外安装驱动,只需要安装sqlite3数据库即可。

1、sqlite3数据库的安装(Ubuntu中)

复制代码
    1)通过管理工具安装(APT)

        sudo apt-get install sqlite3 
        sudo apt-get install libsqlite3-dev
        sudo apt-get install sqlitebrowser 

    2)通过源码包进行安装 (安装包在文章底部下载)

        (1)将 源码包 拷贝到 家目录下 ( /home/china/ )
            cp  sqlite-snapshot-201803271513.tar.gz  /home/china/ 

        (2)解压 
            tar -zxvf  sqlite-snapshot-201803271513.tar.gz

        (3)进入源码目录 
            cd  sqlite-snapshot-201803271513 

        (4) 生成Makefile 
            ./configure 

        (5) 编译,生成可执行文件和库文件 
            make 

        (6) 安装数据库(实质上就是把生成的可执行文件和lib库文件 放到系统相应的路径下)
            sudo make install  

2、移植到开发板 ----------------(这里直接看第七步就行,我已经提供了编译好的文件,不行的话就自己按步骤执行)

复制代码
    sqlite3的移植: 
        移植原理是 在编译环境的机器上 交叉编译好 可执行文件和lib库文件 
                再把可执行文件和lib库文件 拷贝到开发板的 /bin  /lib  

    (1)将 源码包 拷贝到 家目录下 ( /home/china/ )
        cp  sqlite-snapshot-201803271513.tar.gz  /home/china/ 

    (2)解压 
        tar -zxvf  sqlite-snapshot-201803271513.tar.gz

    (3)进入源码目录 
        cd  sqlite-snapshot-201803271513 

    (4) 生成Makefile 
        ./configure  --host=arm-linux  --prefix=/home/china/sqlite3_arm  

                --host    指定目标主机的架构 
                --prefix  指定程序在本机的安装路径

    (5) 编译,生成可执行文件和库文件 
        make 

    (6) 安装数据库(实质上就是把生成的可执行文件和lib库文件 放到系统相应的路径下)
        sudo make install 

    (7) 把相应的文件 下载到 开发板上  (需要的文件在"数据库移植"压缩包内)

            /home/china/sqlite3_arm/bin/ 
                把 sqlite3 文件  --》 拷贝到开发板的 /bin 目录下 
                                    //记得加权限 chmod 0777 sqlite3

            /home/china/sqlite3_arm/lib/  
                libsqlite3.so 
                libsqlite3.so.0
                libsqlite3.so.0.8.6  
                    把 这3个文件 拷贝到开发板的 /lib 目录下 
                    (有链接文件 不能直接拷贝 )

                先压缩 再进行传输  
                    sudo tar -zcvf libsqlite3.tar.gz  libsqlite3.so.0.8.6 libsqlite3.so.0  libsqlite3.so

数据库移植压缩包已经打包上传了,有需要下载。

数据库移植

下面两个是要传到开发板的文件,第一个是Ubuntu中sqlite3数据库安装包

相关推荐
大气层煮月亮2 分钟前
Oracle EBS ERP开发——报表生成Excel标准模板设计
数据库·oracle·excel
云和数据.ChenGuang11 分钟前
达梦数据库的命名空间
数据库·oracle
三三木木七1 小时前
mysql拒绝连接
数据库·mysql
蹦跶的小羊羔1 小时前
sql数据库语法
数据库·sql
唐古乌梁海1 小时前
【mysql】InnoDB的聚簇索引和非聚簇索引工作原理
数据库·mysql
我变秃了也没变强1 小时前
pgsql配置密码复杂度策略
数据库·postgresql
PawSQL1 小时前
企业级SQL审核工具PawSQL介绍(1) - 六大核心能力
数据库·sql·oracle
幼稚园的山代王1 小时前
NoSQL介绍
数据库·nosql
-指短琴长-1 小时前
Namespace隔离实战【Linux】
linux
猫林老师1 小时前
HarmonyOS线程模型与性能优化实战
数据库·分布式·harmonyos