#include <QtSql>
QT += sql
QSqlDatabase类实现了数据库连接的操作
QSqlQuery类执行SQL语句
QSqlRecord类封装数据库所有记录
QSqlDatabase类
QSqlDatabase db = QSqlDatabase::addDatabase("QOCI"); db.setHostName("localhost"); //数据库主机名 db.setDatabaseName("scott"); //数据库名 db.setUserName("stott"); //数据库用户名 db.setPassword("tiger"); //数据库密码 db.open(); //打开数据库连接 db.close(); //释放数据库连接 |
建立数据库文件
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName("database.db"); if (!db.open()) { qDebug("数据库不能打开"); } return false; |
建立数据库文件后创建表并插入两条数据
QSqlQuery query; query.exec("create table student(id INTEGER PRIMARY KEY autoincrement, name nvarchar(20), age int)"); //id自动增加 query.exec("insert into student values(1,'小明', 14)"); query.exec("insert into student values(2,'小王',15)"); |
QSqlQuery类
插入值到数据库操作
一、直接用SQL语句插入(参照上面)
二、利用预处理方式插入(ORACLE语法和ODBC语法)
适合插入多条记录,或者避免将值转换成字符串(即正确地转义),调用prepare()函数指定一个包含占位符的query,然后绑定要插入的值
ORACLE语法
QSqlQuery query; query.prepare("INSERT INTO T_STUDENT (name, age) VALUES (:name, :age)"); //准备执行SQL查询 query.bindValue(":name", "小王"); //在绑定要插入的值 query.bindValue(":age", 11); query.exec(); |
ODBC语法
QSqlQuery query; query.prepare("INSERT INTO T_STUDENT (name,age) VALUES (?,?)"); //准备执行SQL查询 query.addBindValue("小王"); //在绑定要插入的值 query.bindValue(11); query.exec(); |