红联Linux门户
Linux帮助

Ubuntu 15.04安装配置Qt+SQLite3

发布时间:2015-11-19 10:09:40来源:linux网站作者:Coding菌

最近需要在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)包括如下一些驱动程序:

Ubuntu 15.04安装配置Qt+SQLite3

在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

执行结果:

Ubuntu 15.04安装配置Qt+SQLite3


ubuntu上安装和使用sqlite数据库:http://www.linuxdiyf.com/linux/15272.html

Ubuntu环境:sqlite3在mini2440上的移植:http://www.linuxdiyf.com/linux/11300.html

Linux查看SQLite的表结构:http://www.linuxdiyf.com/linux/8834.html

搭建SQLite3嵌入式开发环境:http://www.linuxdiyf.com/linux/5844.html

Linux PHP开启对Sqlite的支持:http://www.linuxdiyf.com/linux/6223.html