第七天: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数据库安装包

相关推荐
水木石画室19 分钟前
Druid 连接池详解
数据库·mysql
北城笑笑20 分钟前
Server 11 ,⭐通过脚本在全新 Ubuntu 系统中安装 Nginx 环境,安装到指定目录( 脚本安装Nginx )
linux·运维·前端·nginx·ubuntu
yzpyzp22 分钟前
gradle的 build时kaptDebugKotlin 处理数据库模块
android·数据库
zsyzClb25 分钟前
总结用ubuntu一直以来遇到的问题
linux·运维·ubuntu
软件20530 分钟前
【redis——缓存雪崩(Cache Avalanche)】
数据库·redis·缓存
will_net1 小时前
Linux入门(十八)read&函数
linux·运维·chrome
运维小杨1 小时前
linux云计算学习第八周,第九周
linux·学习·云计算
訾博ZiBo1 小时前
使用 Navicat 成功导入 2.73GB 超大 SQL 文件的实战经验(Win10,64GB内存)
数据库·mysql
小胖同学~1 小时前
SQL 增删改查 —— 笔记篇
服务器·数据库
梦兮林夕2 小时前
Docker + Gin + Gorm Gen:现代 Go Web 开发高效数据库实践
数据库·go·gin