• Ubuntu 15.04 安装配置 Qt + SQLite3


    最近需要在Ubuntu下使用Qt开发项目,选择简单小巧的SQLite数据库,现将安装配置以及简单操作记录如下,以便日后查阅。

    安装Qt

    CMake和Qt Creator是Linux下开发C++程序的神器,Ubuntu 15.04已经集成了最新版的Qt Creator (3.1.1)。

    sudo apt-get install cmake qtcreator  

    安装Sqlite

    1 . 安装SQLite3

    sudo apt-get install sqlite sqlite3  

    2 . 安装Sqlite3编译需要的工具包

    //如果,你需要的话可以安装该工具包。只是为了体验一把,可以不安装。该项是可选项。
    
    apt-get install libsqlite3-dev  

    3 . 检查安装是否成功

    //执行下面命令,会出现sqlite版本号,如3.6.22
    
    sqlite3 -version  

    4 . 安装图形界面

    //不喜欢命令行的话,安装该项有必要。该项是可选项。
    
    sudo apt-get install sqlitebrowser  

    5 . 安装其它语言的支持

    //PHP支持   
    sudo apt-get install php5-sqlite  
    //Ruby支持   
    sudo apt-get install libsqlite3-ruby  
    //Python支持   
    sudo apt-get install python-pysqlite2  

    6 . 建立数据库

    //可以在任意目录下(如/home/yangrui/database),执行下面命令
    
    sqlite3 test.db  

    注意:该命令执行之后,如果在当前目录没有test.db的话,就会创建该文件,如果已经存在的话直接使用该数据库文件。

    使用.database可以查看所创建的数据库

    7 . 创建表

    数据类型,可以参考官方文档。

    create table mytable(name varchar(10),age smallint);  
    //同理,使用.table可以看看自己创建的表mytable

    8 . 向表中插入数据

    insert into mytable values('mark',28);  
    insert into mytable values('hello',30);  

    9 . 查询数据

    select * from mytable;  

    10 . 删除表

    drop table mytable;  

    11 . 删除数据库

    很不幸运,SQLite无法同其他数据库那样删除数据库文件,即DROP DATABASE test;无效,但是我们可以直接像删除文件一样删除数据库文件,在/home/mark/database下面删除test.db文件即可。

    Qt下使用SQLite

    QtSql模块提供了与平台以及数据库种类无关的访问SQL数据库的接口,这个接口由利用Qt的模型视图结构将数据库与用户界面集成的一套类来支持。

    QSqlDatabase对象象征了数据库的关联。Qt使用驱动程序与各种数据库的应用编程接口进行通信。Qt的桌面版(Desktop Edition)包括如下一些驱动程序:
    驱动

    在Qt Creator中新建一个test项目:
    main.cpp添加一下代码:

    #include <QCoreApplication>
    #include <QtSql/QSqlDatabase>
    #include <QtSql/QSqlDriver>
    #include <QtSql/QSqlQuery>
    #include <QDebug>
    #include <string>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        QCoreApplication a(argc, argv);
    
        qDebug()<<"available drivers:";
        QStringList drivers = QSqlDatabase::drivers();
        foreach(QString driver, drivers)
        qDebug()<<driver;
    
        QSqlDatabase db=QSqlDatabase::addDatabase("QSQLITE");
        //db.setHostName("localhost");
        //db.setPort(3306);
    
        //事先创建的数据库EasyChat.db
        db.setDatabaseName("/home/yangrui/projects/EasyChat/database/EasyChat.db");
        db.setUserName("root");
        db.setPassword("123456");
        if(!db.open()){
            qDebug()<<"Unable to open database";
        }else{
            qDebug()<<"Database connection established";
        }
    
    
        QSqlQuery query;
        query.exec("select * from User");
        while(query.next())
        {
            QString userId = query.value("userId").toString();
            qDebug()<<userId;
        }
        return a.exec();
    }
    

    注意: .pro文件中代码如下:

    #-------------------------------------------------
    #
    # Project created by QtCreator 2015-11-18T11:30:07
    #
    #-------------------------------------------------
    
    QT       += core
    QT       += sql
    QT       -= gui
    
    
    TARGET = SqliteTest
    CONFIG   += console
    CONFIG   -= app_bundle
    
    TEMPLATE = app
    
    
    SOURCES += main.cpp
    

    执行结果:
    结果

    附:Sqlite基本操作语句链接

  • 相关阅读:
    [No0000139]轻量级文本编辑器,Notepad最佳替代品:Notepad++
    [No0000138]软件开发基础知识
    [No0000137]字符编码详解
    [No0000144]深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing)理解堆与栈1/4
    [No0000136]6个重要的.NET概念:栈,堆,值类型,引用类型,装箱,拆箱
    [No0000135]程序员修炼之道 Tips
    phpstorm 调试时浏览器显示The requested resource / was not found on this server
    php注解
    phpStorm 配置PHP_CodeSniffer自动检查代码
    php
  • 原文地址:https://www.cnblogs.com/shine-yr/p/5214756.html
Copyright © 2020-2023  润新知