一、编程简介
QtSql模块提供了与平台以及数据库种类无关的访问SQL数据库的接口,这个接口由利用Qt的模型视图结构将数据库与用户界面集成的一套类来支持。
QSqlDatabase代表数据库的关联。Qt使用驱动程序同各种数据库的接口进行通信。Qt4.8.6主要包括以下一些驱动程序:QDB2 QIBASE QMYSQL QOCI QODBC QPSQL QSQLITE QSQLITE2 QTDS,Qt的开源版本驱动通常需要自己进行编译,生成目录在插件目录下。
二、使用举例
1、关联数据库
QSqlDatabase database = QSqlDatabase::addDatabase("QSQLITE");
database.setDatabaseName("dbname.db");
database.setUserName("username");
database.setPassword("userpasswd");
2、打开/关闭数据库
if(!database.open())
{
qDebug()<<database.lastError();
}
database.close();
3、增删改查
QSqlQuery query;
QString createSql = "create table student (id int primary key, name varchar(20))";
QString selectSql = "select * from student";
QString insertSql = "insert into student values (1, “test”)";
QString updateSql = "update student set name = testupdate where id = 1";
QString deleteSql = "delete from student where id = 1";
query.prepare(createSql); //创建表
if (!query.exec()){
qDebug()<<query.lastError();
}
query.prepare(insertSql); //插入数据
if (!sql_query.exec()){
qDebug() << query.lastError();
}
query.prepare(updateSql); //更新数据
if (!query.exec()){
qDebug() << query.lastError();
}
query.prepare(selectSql); //查询数据
if (!query.exec()){
qDebug() << query.lastError();
}
query.prepare(deleteSql); //删除数据
if (!query.exec()){
qDebug() << query.lastError();
}
三、数据库管理工具
数据库管理工具目前有很多,不同的数据库产品有自己专门的管理工具,同时也有向navicat这种可以访问不同数据库的产品,主要推荐还是使用数据库自带的命令工具,功能和性能方面都比较不错。