#include "line.h" Line *Line::getInstance() { static Line linedb; return &linedb; } Line::Line() { //先判断连接是否存在 if(QSqlDatabase::contains("linesql")) { db_ = QSqlDatabase::addDatabase("linesql"); } else { //1.加载数据库驱动 db_ = QSqlDatabase::addDatabase("QSQLITE", "linesql"); qDebug () << db_.connectionName();//打印连接名称 //2.设置数据库名 db_.setDatabaseName("line.db"); qDebug () << db_.databaseName(); } //3.打开数据库 if(db_.open()) { qDebug() << "open success"; } else { qDebug() << "open:" << db_.lastError().text(); return; } QString sql = "create table if not exists table_line(number varchar(10) primary key,state varchar(3));"; QSqlQuery query(db_); if (query.exec(sql)) { qDebug() << "linedb success."; } db_.close(); } QString Line::findCode(QString number) { QString sql = QString("select from table_line where name = :name;"); //打开数据库 if(!db_.open()) { qDebug() << "open fail" << db_.lastError().text(); exit(-1); } //执行插入操作 QSqlQuery query(db_); query.prepare(sql); query.bindValue(":number",QVariant(number)); query.exec(); QString linecode; //查询成功 if(query.next()) { linecode = query.value(1).toString(); qDebug() << "linecode:" << linecode; } db_.close(); return linecode; } QString Line::choose() { QString sql = QString("select from table_line where state = :state limit 1;"); QSqlQuery query(db_); query.prepare(sql); query.bindValue(":state",QVariant("000")); //选择未占用的车位 query.exec(); if(query.next()) { QString number = query.value(0).toString(); return number; } } void Line::setState(QString number) { QString sql = QString("update table_line set state=:state where number=:number"); QSqlQuery query(db_); query.prepare(sql); query.bindValue(":number",QVariant(number)); query.bindValue(":state",QVariant("111")); //已占用的话为111 query.exec(); } void Line::resetState(QString number) { QString sql = QString("update table_line set state=:state where number=:number"); QSqlQuery query(db_); query.prepare(sql); query.bindValue(":number",QVariant(number)); query.bindValue(":state",QVariant("000")); //状态初始值为000 query.exec(); }