#include #include #include #include #include #include #include "database.h" DataBase *DataBase::getInstance() { static DataBase sqldb; return &sqldb; } DataBase::DataBase() { //先判断连接是否存在 if(QSqlDatabase::contains("testConnection")) { db_ = QSqlDatabase::addDatabase("testConnection"); } else { //1.加载数据库驱动 db_ = QSqlDatabase::addDatabase("QSQLITE", "testConnection"); qDebug () << db_.connectionName();//打印连接名称 //2.设置数据库名 db_.setDatabaseName("usr.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_usr(name varchar(30) primary key, pwd varchar(20));"; QSqlQuery query(db_); if (query.exec(sql)) { qDebug() << "create success."; } db_.close(); } //插入一个用户信息 bool DataBase::insertUsr(QString name, QString pwd) { QString sql = QString("insert into table_usr values('%1', '%2')") .arg(name) .arg(pwd); // 1.打开数据 if (!db_.open()) { qDebug() << "open:" << db_.lastError().text(); return false; } // 2.执行sql QSqlQuery query(db_); if (!query.exec(sql)) { qDebug() << "insert:" << query.lastError().text(); return false; } //关闭数据库 db_.close(); return true; } //根据name查找用户 bool DataBase::findUsr(QString name) { QString sql = QString("select from table_usr where name = :name;"); //打开数据库 if(!db_.open()) { qDebug() << "open fail" << db_.lastError().text(); exit(-1); } //执行插入操作 QSqlQuery query(db_); query.prepare(sql); query.bindValue(":name",QVariant(name)); query.exec(); //查询成功 if(query.next()) { if(name == query.value(0).toString()) //用户存在 { return true; } } db_.close(); return false; } bool DataBase::Delete(QString name) { QString sql = QString("delete from table_usr where name = :name;"); //打开数据库 if(!db_.open()) { qDebug() << "open fail" << db_.lastError().text(); exit(-1); } //执行删除操作 QSqlQuery query(db_); query.prepare(sql); query.bindValue(":name",QVariant(name)); if (!query.exec()) { qDebug() << "delete" << query.lastError().text(); return false; } //关闭数据库 db_.close(); return true; } //匹配name和pwd bool DataBase::match(QString name, QString pwd) { QString sql = QString("select name, pwd from table_usr where name = :name;"); //打开数据库 if(!db_.open()) { qDebug() << "open fail" << db_.lastError().text(); exit(-1); } QSqlQuery query(db_); query.prepare(sql); query.bindValue(":name",QVariant(name)); if(query.exec()) { //匹配密码 if(query.next()) { qDebug() << query.value(1).toString(); if(pwd == query.value(1).toString()) { return true; } } } //关闭数据库 db_.close(); return false; }