#include
QT += sql
QSqlDatabase类实现了数据库连接的操作
QSqlQuery类用来执行SQL语句
QSqlRecord类 封装数据库所有记录
第一:QSqlDatabase类
QSqlDatabase db =
QSqlDatabase::addDatabase("QSQLITE"); 采用QSQLITE数据库,QMYSQL数据库有问题?
db.setHostName("localhost"); //设置数据库主机名 db.setDatabaseName("test"); //设置数据库名 db.setUserName("root"); //设置数据库登入用户名 db.setPassword("123456"); //设计数据库登入密码 db.open()打开数据库连接
db.close();//释放数据库
QStringList drivers =
QSqlDatabase::drivers();//静态成员函数,是类的成员函数,不是对象的.返回所有可用的数据库驱动程序的清单
drivers.removeAll("QMYSQL3"); //删除列表中的项
foreach(QString driver, drivers) //遍历数据库驱动 ,测试数据库驱动种类
qDebug()
<< “\t” << driver;
建立数据库文件
QSqlDatabase db =
QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("database.db");
if(!db.open()) return false;
QSqlQuery
query;
query.exec("create table Login(id INTEGER PRIMARY
KEY autoincrement, " //id会自动增加,因为这里不能重复,否则数据库无法修改
"goods int, store int, time nvarchar(50), type
int, place nvarchar(50),temperature nvarchar(10)
)");
第二:QSqlQuery类,查询数据库,插入值到数据库等操作数据库
QSqlQuery query; query.prepare("INSERT INTO T_USER (name, age) VALUES (:name,
:age)"); //准备执行SQL查询
query.bindValue(":name",
"justin"); //在这定占位符上确定绑定的值
query.bindValue(":age", 33); query.exec();
QSqlQuery query; //以下执行相关QSL语句
query.exec(“create table student(id int primary key,name
varchar)”);
//新建student表,id设置为主键,还有一个name项
query.exec(“insert into student values(1,’xiaogang’)”);
query.exec(“insert into student values(2,’xiaoming’)”);
query.exec(“insert into student values(3,’xiaohong’)”);
//向表中插入3条记录
query.exec(“select * from student”); 来查询出表中所有的内容。其中的SQL语句“select * from
student”中“*”号表明查询表中记录的所有属性。而当query.exec(“select * from
student”);
这条语句执行完后,我们便获得了相应的执行结果,因为获得的结果可能不止一条记录,所以我们称之为结果集。
while(query.next())
QString name = query.value(0).toString();
//返回"name"字段的索引值"justin",value(i)返回i字段的值,0表示name,1表示age
int id = query.value(1).toInt();
seek(int n) :query指向结果集的第n条记录。指定当前的位置
first() :query指向结果集的第一条记录。
last() :query指向结果集的最后一条记录。
next() :query指向下一条记录,每执行一次该函数,便指向相邻的下一条记录。
previous() :