一、QSqlDatabase类
QSqlDatabase对象表示数据库的关联。有以下驱动程序:
驱动程序 数据库
QDB2 IBM DB2 7.1版以及更新的版本
QIBASE Borland InterBase
QMYSQL MySql
QOCI 甲骨文公司(Oracle Call Interface)
QODBC ODBC(包括微软公司的QSL服务)
QPSQL PostgreSQL的7.3版以及更高版本
QSQLITE QSLite第3版
QSQLITE2 QSLite第2版
QTDS Qybase自适应服务器
QSqlDatabase db = QSqlDatabase::addDatabase("QOCI"); //数据库驱动程序
db.setHostName("localhost"); //数据库主机名
db.setDatabaseName("jifen"); //数据库名
db.setUserName("root"); //数据库用户名
db.setPassword(""); //数据库密码
db.open(); //打开数据库连接
db.close(); //释放数据库连接
二、QSqlQuery类
QSqlQuery对数据库进行操作。分两种方式,直接使用sql语句,注意要对插入数据进行过滤;另一种是采用预处理,使用相关函数。
QSqlQuery sql;
sql.exec("SELECT * FROM admin WHERE name='lili' "); // 直接用sql语句
while (sql.next())
{
int num = sql.value(0).toInt();
}
QSqlQuery query;
query.prepare("INSERT INTO admin(name,num) VALUES (:name, ?)"); //预处理 ,这里:name是ORACLE语法,?是ODBC语法
query.bindValue(":name", "小王"); //绑定name ,可使用QVariantList批量插入
query.bindValue(11); //绑定?
if(query.exec()){
//执行获取数据
}