Qt编程 Navicat数据库的使用

目录

一:新建类[数据设计]

二:数据的初始化以及数据信息的查看


一:新建类[数据设计]

创建一个类

类命名 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数据库文件

将appdb.db文件拖拽至Navicat软件中,查看一下user表,表成功创建,数据成功写入

单例设计模式

保证整个系统只有一个唯一的实例化对象(全局共享)

如何使用单例:

1.构造函数私有化(安全)

2.定义一个私有的静态的类对象指针

3.定义一个公有的静态的获取类对象指针的方法(接口)

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chenruhan_QAQ_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值