最近在学习QT,然后觉得是否应该把数据库也搞一下,于是便进行了一些资料查询和简单的代码编写,下面记录一下一个完整可行的数据库的基本操作。
一、创建数据库并建立连接。
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLIT");
db.setHostName("mystudent");
db.setDatabaseName("flightdb");
if(!db.open())
{
qDebug()<<"open db error";
}
else
qDebug()<<"open db ok";
二、创建表格
QSqlQuery sql_query;
if(!sql_query.exec("create table student(id int primary key, name text,age int)")
qDebug()<<"create table error";
else
qDebug()<<"create table ok"
三、插入数据
if(sql_query.exec("INSERT INTO student VALUES(1,\"XIAO WANG\",23)")
qDebug()<<"insert data error";
else
qDebug()<<"insert data ok"
四、修改数据
sql_query.exec("update student set name = \"QT\" where id = 1");
if(!sql_query.exec())
{
qDebug() << sql_query.lastError();
}
else
{
qDebug() << "updated!";
}
五、查询数据
sql_query.exec("select * from student");
if(!sql_query.exec())
{
qDebug()<<sql_query.lastError();
}
else
{
while(sql_query.next())
{
int id = sql_query.value(0).toInt();
QString name = sql_query.value(1).toString();
int age = sql_query.value(2).toInt();
qDebug()<<QString("id:%1 name:%2 age:%3").arg(id).arg(name).arg(age);
}
}
六、删除数据
sql_query.exec("delete from student where id = 1");
if(!sql_query.exec())
{
qDebug()<<sql_query.lastError();
}
else
{
qDebug()<<"deleted!";
}
七、删除表格
sql_query.exec("drop table student");
if(sql_query.exec())
{
qDebug() << sql_query.lastError();
}
else
{
qDebug() << "table cleared";
}
八、关闭数据库。
db.close;
这是一个简单的QSLITE 的使用。如果需要其他的操作,可参考QT 的官方手册,里面有详细的介绍。