引用:
sqlite 是一款轻量级的、基于文件的嵌入式数据库,2000年就已经诞生,经过7年多的发展,直到今天已经成为最流行的嵌入式数据库,包括google在内的公司 在其桌面软件中亦使用 sqlite 存储用户数据。由此可以看出,已经没有任何理由去怀疑sqlite的稳定性了。
sqlite的优势
1. 免配置,和access一样,只要把数据库文件通过ftp上传到服务器上就可以使用,不需要服务器的额外支持
2. 备份方便,因为只是一个文件,只要复制一份该文件,就能备份整个数据库
3. 虽然是轻量级数据库,但他支持最大 2tb 的单个库文件。
4. 快,无与伦比的快。经过实际测试,在几百万记录的情况下,sqlite的插入和查询速度和 MysqL 不分上下,快于 sql server,10倍于 access (但这并不意味着它可以替代 sql server )
用QT操作sqlite
由于sqlite属于轻量级的数据库,不需要配置,不需要安装,也不需要管理员,所以也就没必要像操作MysqL等数据库一样的设置主机,用户和密码了。
上述文字转自:http://www.cnblogs.com/bennylam/archive/2010/03/22/1691355.html
#cp libQtsql.so* /目标目录
2. 然后安如下方式测试数据库:
#include <QApplication>
#include <QTextEdit>
#include <Qtsql/QsqlDatabase>
#include <Qtsql/QsqlQuery>
#include <Qtsql/QsqlError>
#include <Qtsql/QsqlDriverPlugin>
int main(int argc,char *argv[])
{
QApplication app(argc,argv);
QTextEdit display;
display.resize(200,100);
display.show();
//使用sqlite数据库驱动;
QsqlDatabase db = QsqlDatabase::addDatabase("QsqlITE");
//设置数据库的名称;
db.setDatabaseName("/mnt/Nand/dbtest");
//打开数据库,如果数据库存在,则打开;如果不存在,则创建数据库;
bool ok = db.open();
if(ok)
{
display.append("open database ok!");
//新建一个查询的实例
QsqlQuery query;
//如果表employee不存在,则创建employee表;
if(query.exec("Create table if not exists employee(name VARCHAR(10),age VARCHAR(10))"))
{
display.append("query : create ok!");
//向表employee中插入记录
if(query.exec("insert into employee(name,age) values('yumei',27)"))
{
display.append("query : insert ok!");
//从表employee中查询数据
if(query.exec("select * from employee"))
{
display.append("query : select ok!");
int num = 0;
num = query.size();
QString name;
QString age;
QString result;
//将查询结果逐条显示
while(query.next())
{
name = query.value(0).toString();
age = query.value(1).toString();
result = name + age;
display.append(result);
}
}
else
{
display.append("query : select fail!");
}
}
else
{
display.append("query : insert fail!");
}
}
else
{
display.append("query : create fail!");
}
}
else
{
display.append("open database fail!");
}
return app.exec();}