QSqlDatabase类 用于连接数据库的类,创建、设置、打开、关闭、删除
QSqlDatabase提供了对数据库操作的接口,QSqlDatabase类的实例表示了一个数据库连接。
创建数据库
通过调用addDatabase()创建连接,用户通过对QSqlDatabase 实例对数据库操作。
db=QSqldatabase::addDatabase("type","connectionName")
type主要有以下几种数据库驱动:QMYSQL(最常用)QODBC(对ODBC操作)QPSQL,QSQLITE等
connectionName是数据库连接名,并不是数据库的名字
设置连接参数:
数据库名setDatabaseName(),用户名setUserName(),密码setPassword(),主机名setHostName(),端口setPort(),连接设置setConnectOptions()
关闭数据库
close()
删除数据库
静态公有成员函数removeDatabase(cconst QString & connectionNameonst QString & connectionName),需要先关闭再删除
成员函数详细说明
静态公有成员函数(调用是 类名::函数)addDatabase(const QString & type, const QString & connectionName =QLatin1String( defaultConnection ))
添加数据库连接,type是选择的数据库的驱动方式,connectionName是数据库名,如果该数据库已被打开则将该原来的连接删除(新的连接取代)。如果type没有给定,则isValid()返回错误;如果connectionName没有给定则连接默认的数据库。
静态公有成员函数cloneDatabase(const QSqlDatabase & other, const QString & connectionName)
把other所连的数据库以connectionName名存储,但未被打开,使用前需open()
open()
打开连接的数据库
open ( const QString & user, const QString & password )
实例:
#include<QApplication>
#include<QtSql>
#include<QDebug>
int main(int argc,char*argv[])
{
{
QSqlDatabase db;
db=QSqlDatabase::addDatabase("QMYSQL","trial1");
qDebug()<<db.connectionName();//输出默认的数据库名
qDebug()<<QSqlDatabase::drivers();//输出可用的数据库驱动
qDebug()<<db.databaseName();//默认的数据库名
//设置名字,主机名,用户名,密码
db.setDatabaseName("trial");
db.setHostName("localhost");
db.setUserName("root");
db.setPassword("");
bool t=db.open();
if(!t)//打开数据库
{qDebug()<<" can not open the database"<<db.databaseName();}
db.close();//关闭数据库
if(!db.isOpen())//判断数据库是否被打开
{qDebug()<<"close the database"<<db.databaseName();}
}
QSqlDatabase::removeDatabase("trial1");//删除连接数据库
}
QSqlDatabase提供了对数据库操作的接口,QSqlDatabase类的实例表示了一个数据库连接。
创建数据库
通过调用addDatabase()创建连接,用户通过对QSqlDatabase 实例对数据库操作。
db=QSqldatabase::addDatabase("type","connectionName")
type主要有以下几种数据库驱动:QMYSQL(最常用)QODBC(对ODBC操作)QPSQL,QSQLITE等
connectionName是数据库连接名,并不是数据库的名字
设置连接参数:
数据库名setDatabaseName(),用户名setUserName(),密码setPassword(),主机名setHostName(),端口setPort(),连接设置setConnectOptions()
关闭数据库
close()
删除数据库
静态公有成员函数removeDatabase(cconst QString & connectionNameonst QString & connectionName),需要先关闭再删除
成员函数详细说明
静态公有成员函数(调用是 类名::函数)addDatabase(const QString & type, const QString & connectionName =QLatin1String( defaultConnection ))
添加数据库连接,type是选择的数据库的驱动方式,connectionName是数据库名,如果该数据库已被打开则将该原来的连接删除(新的连接取代)。如果type没有给定,则isValid()返回错误;如果connectionName没有给定则连接默认的数据库。
静态公有成员函数cloneDatabase(const QSqlDatabase & other, const QString & connectionName)
把other所连的数据库以connectionName名存储,但未被打开,使用前需open()
open()
打开连接的数据库
open ( const QString & user, const QString & password )
实例:
#include<QApplication>
#include<QtSql>
#include<QDebug>
int main(int argc,char*argv[])
{
{
QSqlDatabase db;
db=QSqlDatabase::addDatabase("QMYSQL","trial1");
qDebug()<<db.connectionName();//输出默认的数据库名
qDebug()<<QSqlDatabase::drivers();//输出可用的数据库驱动
qDebug()<<db.databaseName();//默认的数据库名
//设置名字,主机名,用户名,密码
db.setDatabaseName("trial");
db.setHostName("localhost");
db.setUserName("root");
db.setPassword("");
bool t=db.open();
if(!t)//打开数据库
{qDebug()<<" can not open the database"<<db.databaseName();}
db.close();//关闭数据库
if(!db.isOpen())//判断数据库是否被打开
{qDebug()<<"close the database"<<db.databaseName();}
}
QSqlDatabase::removeDatabase("trial1");//删除连接数据库
}