数据库调用方法


概述

针对业务数据需要持久化存储、高效检索等应用场景,需要用到数据库进行数据的管理。


一、QT数据库类

(1)QT中数据库类
QT数据库类分层
(2)常用的类
QSqlDatabase :通过这个类添加/删除/复制/关闭数据库实例
QSqlQuery:可以使用SQL语句实现交互

二、实现流程

(1)添加动态库支持
在pro文件中,增加

QT += core gui sql

(2)创建数据库实例

QSqlDatabase db = QSqlDatabase::addDatabase("QODBC")

(3)初始化数据库实例

db.setUserName(username)
db.setPassword(password)
db.setDatabaseName(database)

(4)连接数据库

bool bl = db.open()

(5)对数据库进行一系列的添、删、查、改操作(编写并执行SQL语句)

QSqlQuery query(db)
QString sql = "insert into XXXX values(XXXXXXXX')"
query.prepare(sql)
bool bl = query.exec()

(6)关闭数据库

db.close()

三、其他操作

(1)获取数据库驱动名字的集合

    QStringList ls = QSqlDatabase::drivers()

可支持的驱动有:

("QSQLITE", "QMYSQL", "QMYSQL3", "QOCI", "QOCI8", "QODBC", "QODBC3", "QPSQL", 	"QPSQL7")

(2)数据库操作错误码打印

QSqlQuery query(db)
query.lastError()

(4)建表SQL

"create table Person("
        "id int identity(1000,1) primary key  not null,"
        "name char(10)not null,"
        "pnum int not null,"
        "age int not null,"
        "height int not null,)"
//create table Person(id,name,pnum,age,height)

(5)查询SQL

query.prepare("SELECT * from "+table+" where index = '"+QString::number(index)+"'")

(6)写入SQL

query.prepare("INSERT INTO "+table+" values("+QString::number(index)+",'"+Bianliang+"')")

(7)打印数据

1)遍历整个结果 query.next()
2)每一条记录有5个数据使用value(0-4)来访问
3)query.value()的数据类型为QVariant,输出数据时需要强制转换
qDebug()<<query.value(0).toInt()


总结

数据库的难点其实是数据库的部署、ODBC驱动安装,针对不同厂家的数据库,需要多费点心思研究。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值