目录
一:新建类[数据设计]
创建一个类
类命名 mySqlite
完成 进入工程 编写代码
二:数据的初始化以及数据信息的查看
点击运行查看是否成功将数据写入数据库[qDebug打印测试]
mysqlite.h .cpp
#ifndef MYSQLITE_H
#define MYSQLITE_H
#include"sqlite3.h"
class mySqlite
{
public:
//构造函数的重载
mySqlite(char *mydbname);//数据库对象名不固定
~mySqlite();//执行close
void createUserTable();
sqlite3 *mydb;
};
#endif // MYSQLITE_H
#include "mysqlite.h"
#include<QDebug>
mySqlite::mySqlite(char *mydbname)
{
char *zErrMsg;
int ret = sqlite3_open(mydbname,&mydb);
if(ret != SQLITE_OK)
{
qDebug()<<zErrMsg;
sqlite3_free(zErrMsg);
}
else
{
qDebug()<<"Table created successfully\n";
}
}
mySqlite::~mySqlite()
{
sqlite3_close(mydb);
}
void mySqlite::createUserTable()
{
char *zErrMsg;
char *createsql = "create table if not exists user(userid integer primary key autoincrement,\
username text not null,\
userpwd text not null)";
int rc = sqlite3_exec(mydb,createsql,NULL,0,&zErrMsg);
if(rc != SQLITE_OK)
{
fprintf(stderr,"SQL error:%s\n",zErrMsg);
sqlite3_free(zErrMsg);
}
else
{
fprintf(stdout,"Table created successfully\n");
}
char *insertsql = "insert into user(userid,username,userpwd) values(1001,'admin','123456')";
rc = sqlite3_exec(mydb,insertsql,NULL,0,&zErrMsg);
if(rc != SQLITE_OK)
{
fprintf(stderr,"SQL error:%s\n",zErrMsg);
sqlite3_free(zErrMsg);
}
else
{
fprintf(stdout,"insert data successfully\n");
}
}
main.cpp
#include "widget.h"
#include <QApplication>
#include<QDebug>
#include <QWidget>
#include"sqlite3.h"
#include"mysqlite.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
qDebug()<<"sqlite3版本"<<sqlite3_libversion();
mySqlite *appdb = new mySqlite("appdb.db");//数据库实例化操作
appdb->createUserTable();//创建表
Widget w;
w.show();
return a.exec();
}
点击运行,右键main.cpp在Explorer中显示,发现成功生成有appdb.db数据库文件
单例设计模式
保证整个系统只有一个唯一的实例化对象(全局共享)
如何使用单例:
1.构造函数私有化(安全)
2.定义一个私有的静态的类对象指针
3.定义一个公有的静态的获取类对象指针的方法(接口)