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数据库安装包