更新数据库操作实例
//更新数据操作
QString sqlUpdate = QString("update staff set name = '李四' where id= 3;");
if(!query.exec(sqlUpdate))
{
qDebug() << "update data error" << db.lastError();
}
(5)查询数据
查询操作语法:
SELECT column1, column2, column FROM table_name;
SELECT ---- 关键字
column1, column2 columnN --- 列的字段名
FROM ----- 关键字
table_name ----- 表名
从表中查询出指定字段的对应的值,如果想要拆线呢所有字段的值,可以采用:select * from 表名
SELECT * FROM table_name;
查询操作实例:
//查询操作
QString sqlSelect = QString("select * from staff;");
if(!query.exec(sqlSelect))
{
qDebug() << "insert data error" << db.lastError();
}
else
{
while(query.next())
{
qDebug() << query.value("name").toString();
qDebug() << query.value("age").toInt();
}
}
第五步:显示数据库信息到UI页面
//显示数据库信息
QString sqlSelect = QString("select * from staff;");
if(!query.exec(sqlSelect))
{
qDebug() << "query data error" << db.lastError();
}
else
{
while(query.next())
{
qDebug() << query.value("name").toString();
qDebug() << query.value("age").toInt();
ui->nameLabel->setText(query.value("name").toString());
ui->ageLabel->setText(QString::number(query.value("name").toInt()));
}
}
查询到最后一行数据显示到UI上:
第六步:关闭数据库
db.close();
3、Qt SQL模块数据库类接口
在Qt中为SQL数据库提供驱动程序层、SQL API层和用户界面层,其提供主要类的简要功能说明见下表
Qt SQL模块包含的主要类的功能
类名称 | 功能说明 |
---|---|
QSqlDatabase | 用于与数据库建立连接 |
QSqlDriver | 访问特定sql数据库的抽象基类 |
QSqlDriverCreator | 为某个具体的数据库驱动提供SQL驱动的模板类 |
QSqlDriverCreatorBase | 所有SQL驱动器的基类 |
QSqlDriverPlugin | 用于定制QSqlDriver插件的抽象类 |
QSqlError | SQL数据错误细信息,可以用于访问上一次出错的信息 |
QSqlField | 操作数据表或试图的字段的类 |
QSqlIndex | 执行数据库索引的类 |
QSqlQuery | 执行各种SQL语句的类 |
QSqlQueryModel | SQL查询结果数据的只读数据模型,用于SELECT查询结果数据记录的只读显示 |
QSqlRecord | 封装了数据记录操作的类 |
QSqlRelation | 用于存储SQL外键信息的类,用于QSqlRelationalTableModel数据源中设置代码字段与关联数据表的关系 |
QSqlRelationTableModel | 用于QSqlRelationalTableModel的一个代码字段的显示和编辑代理组件,一般是一个QComboBox组件,下拉列表中自动填充代码表的代码字段对应的实际内容 |
QSqlRelationTableModel | 用于一个数据表的可编辑数据模型,支持代码字段的外键 |
QSqlResult | 访问SQL数据库的抽象接口 |
QSqlTableModel | 编辑一个单一数据表的数据模型类 |
QtSQL也是采用MVC设计思想来处理数据,主要类有:
(1) QSqlDatabase用于建立与数据库的连接,在建立连接时,加载数据库驱动的时候,可以设置数据库类型和数据库名字。除此之外,还可以通过接口设置数据库名字、主机名、用户名和密码,其主要接口说明见下表:
QSqlDatabase操作主要接口
函数名称 | 功能说明 |
---|---|
QSqlDatabase addDatabase(constQString &type,const QString &connectionName=QLatin1String(defaultConnection)) | 根据数据库类型,获取数据库对象并连接 |
void setDatabaseName(const QString &name) | 设置连接数据库名字 |
void setHostName(const QString &host) | 设置连接主机名字 |
void sePassword(const QString &password) | 设置连接密码 |
void setUserName(const QString &name) | 设置连接用户名 |
bool open() | 打开连接的数据库 |
(2) QSqlQuery执行各种SQL语句的类,在打开成功连接的数据库,则可以通过QSqlQuery的接口来访问数据库中内容,其主要接口说明见下表
QSqlQuery操作主要接口
函数名称 | 功能说明 |
---|---|
QSqlQuery(const QString &query = QString(),QSqlDatabase db=QSqlDatabase()) | 得到访问数据库QSqlQuery对象 |
bool exec(const QString &query) | 执行SQL语句访问数据库 |
int at() const | 得到当前记录查询位置,第一条记录的为0 |
bool first() | 检索结果中的第一条记录 |
bool last() | 检索结果中的最后一条记录 |
bool next() | 检索结果中的下一条记录 |
QVariant value(const QString &name) const | 返回当前记录中名为name的字段的值 |
-
嵌入式
+关注
关注
5082文章
19126浏览量
305173 -
数据库
+关注
关注
7文章
3799浏览量
64389 -
MySQL
+关注
关注
1文章
809浏览量
26566
发布评论请先 登录
相关推荐
评论