QT SQLite,qtsqlite
1.准备
.pro文件:QT+=sql
头文件: #include<QSqlDatabase>,<QSqlError>,<QSqlQuery>
2.建立数据库
QSqlDatabase database;
if(QSqlDatabase::contains("qt_sql_default_connection")){ //存在返回true
database = QSqlDatabase::database("qt_sql_default_connection");
}else{
database = QSqlDatabase::addDatabase("QSQLITE"); //可以加第二个参数“my_connection”,不然默认是上面那个链接名称
database.setDatabaseName("MyDatabase.db");
database.setUserName("Bean");
database.setPassword("......");
}
3.打开/关闭数据库
if(!database.open()){
qDebug()<<"Error:"<<database.lastError();
}else{
....
//数据库操作。。
....
}
database.close(); //关闭数据库;
4.操作数据库 --<QSqlQuery>
创建表格
QSqlQuery sql_query;
sql_query.prepare("create TABLE table1(id int primary key,name varchar(30),age int)");
if(!sql_query.exec()){
qDebug()<<sql_query.lastError();
}else{
qDebug()<<"Table has created!";
}
//可以直接sql_query.exex("sql语句!");
//exec()是判断返回,prepare()值执行。
插入数据
sql_query.exec("INSERT INTO table1 values(3,\"Tom\",12));
修改数据
sql_query.prepare("update table1 set name = :name WHERE id = :id");
sql_query.bindValue(":name","Qt");
查询数据
sql_query.prepare("select id,name from table1");
while(sql_query.next()){ //默认是-1的
int id = sql_query.value(0).toInt(); //第一个参数
QString name = sql_query.value(1).toString();
qDebug()<<QString("id:%1 name:%2").arg(id).arg(name);
//也可以直接qDebug()<<sql_query.value(0);
}
查询最大值:"select max(id) from table1";