1 mysql的数据库必须手动建好,代码里面没办法建立数据库,建立数据库的方法:
A mysql命令行建立
B 用navicat(界面化操作数据库工具)建立数据库连接,然后创建数据库。
2 数据库是否被初始化过(有无表),可以通过查询语句判断,没有就可以用qfile的方式初始化:
bool DBManage::check_table(){
QSqlQuery query(m_db);
QString str("show tables");
if(!query.exec(str)){
qDebug()<<"query failed : "<<query.lastError();
}
if(query.next()){
qDebug()<<"has table";
return true;
}
qDebug()<<"no table
";
return false;
}
3 数据库的查询语句可以带参数:
A 插入时带参数
// 创建query
QSqlQuery query = DBManage::Instance()->CreateQuery();
// 创建语句
query.prepare("INSERT INTO T_LOG(PCBNO) VALUES(:pcbno)");
query.bindValue(":pcbno",xxx);//xxx是要写入该列的数据
//执行
query.exec();
B 查询时带参数
// 创建query
QSqlQuery query = DBManage::Instance()->CreateQuery();
// 创建语句
QString str = "SELECT * FROM T_LOG WHERE TIME>= :begin_time AND TIME<= :end_time";
str+=" ORDER BY PCBNO DESC";
query.prepare(str);
query.bindValue(":begin_time",begin_time.c_str());
query.bindValue(":end_time",end_time.c_str());
query.exec();
4 数据库事务的定义:
https://www.runoob.com/mysql/mysql-transaction.html