SQLite单例模式(QT4)
生活随笔
收集整理的這篇文章主要介紹了
SQLite单例模式(QT4)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我這里用的是QT4創建的Gui應用。
在開始寫SQL單例之前要在.pro工程中添加QT += core gui sql
.h文件
#ifndef MYSQL_H #define MYSQL_H#include <QVariant> #include <QSqlDatabase> #include <QSqlQuery> #include <QDebug> class MySql { public:static MySql*Instance() //獲取單例指針{if(!m_sql)m_sql = new MySql();return m_sql;}//提供對外接口void CreateTable();void InsertData();void SelectData();void DeleteData(); private://提供一個private 構造函數(防止外部調用構造類的實例)MySql();~MySql();static MySql *m_sql; //靜態指針static QSqlDatabase db; };#endif // MYSQL_H.c文件
#include "mysql.h"MySql* MySql::m_sql = NULL; QSqlDatabase MySql::db;MySql::MySql() {if(QSqlDatabase::contains("qt_connect_db_fail!!"))db = QSqlDatabase::database("qt_connect_db_fail!!");elsedb = QSqlDatabase::addDatabase("QSQLITE");db.setDatabaseName("test.db");if(!db.open()){qDebug()<<"open fail!";}else{qDebug()<<"open success";}CreateTable(); //InsertData();//SelectData();//DeleteData();//SelectData(); }MySql::~MySql() {db.close(); } void MySql::CreateTable() {QSqlQuery query(db);QString base = "create table student(id int primary key,name text,age int)";if(!query.exec(base)){qDebug()<<"Error:faild to Create table!";}else{qDebug()<<"Success to Create table!";} } void MySql::InsertData() {QSqlQuery str_query(db);str_query.exec("insert into student values(1,'zhangsan',18)");str_query.exec("insert into student values(2,'lisi',19)"); } void MySql::SelectData() {QSqlQuery str_query(db);QString data = "select *from student";if(!str_query.exec(data)){qDebug()<<"Error:faild to SelectData!";}else{while(str_query.next()){int id = str_query.value(0).toInt();QString str_name = str_query.value(1).toString();int age = str_query.value(2).toInt();qDebug()<<QString("id:%1 name:%2 age:%3").arg(id).arg(str_name).arg(age);}} } void MySql::DeleteData() {QSqlQuery str_query(db);QString data = "delete from student where name = 'lisi' ";if(!str_query.exec(data)){qDebug()<<"Error:faild to DeleteData!";}else{qDebug()<<"Success to DeleteData!";} }總結
以上是生活随笔為你收集整理的SQLite单例模式(QT4)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BF算法和KMP算法
- 下一篇: python学习笔记(十一)——正则表达