1. 连接数据库
static QSqlDatabase addDatabase(const QString& type, const QString& connectionName);
type:驱动类型,即要使用的数据库管理系统
QT支持的数据库有
Driver name | DBMS |
---|---|
QDB2 | IBM DB2 (version 7.1 and above) |
QIBASE | Borland InterBase |
QMYSQL / MARIADB | MySQL or MariaDB (version 5.0 and above) |
QOCI | Oracle Call Interface Driver |
QODBC | Open Database Connectivity (ODBC) - Microsoft SQL Server and other ODBC-compliant databases |
QPSQL | PostgreSQL (versions 7.3 and above) |
QSQLITE2 | SQLite version 2Note: obsolete since Qt 5.14 |
QSQLITE | SQLite version 3 |
QTDS | Sybase Adaptive ServerNote: obsolete since Qt 4.7 |
connectionName:自定义的连接名
Note:QSqlDatabase 使用connectionName唯一标识一个连接,如果使用相同的连接名创建新的连接,那么会覆盖之前的连接
//连接数据库
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE","connectName");
db.setHostName(hostname);
db.setDatabaseName(databaseName);
db.setUserName(userName);
db.setPassword(password);
db.open();
2. 增删查改
2.1 插入数据
QString command = QString("INSERT INTO table_name (col1, col2, col3,"
"col4, col5, col6)"
"VALUES (%1,%2,%3,%4,%5,%6)")
.arg(data1)
.arg(data2)
.arg(data3)
.arg(data4)
.arg(data5)
.arg(data6);
QSqlQuery query(db);
query.exec(command.toStdString().c_str());
int rowid = query.lastInsertId();
lastInsertId() 函数用于获取最后一次插入的记录的id
QVariant QSqlQuery::lastInsertId() const
Returns the object ID of the most recent inserted row if the database supports it.