qt mysql 获取自增id_一步步学Qt,第十天-MYSQL数据库操作

这篇博客介绍了如何在Qt中进行MySQL数据库操作,包括连接数据库、查询数据表结构以及使用QSqlTableModel显示数据。通过创建DataBaseLayer类,实现了数据库的打开、关闭以及获取数据表模型的功能。示例代码展示了如何在Widget类中设置表格模型并展示数据。
摘要由CSDN通过智能技术生成

0_1314952903LtTA.gif一步步学Qt,第十天-MYSQL数据库操作

今天写了一个连接数据库的demo,我把数据库操作与数据展示独立开了,也差不多就是Qt里面所说的Model/View模式。具体看下面:

数据表:

在windows cmd中查看

0_1314953212bKDs.gif

图示分析:

1、登录mysql的方法:mysql -u "username" -p [return]

*return 就是回车

还记得Qt的回车事件么???》》》Qt::Key_Return

2、选择数据库:use databasename

3、查看数据表:show tables;

4、查看数据表的结构:desc tablename;

程序完整code

#ifndef DATABASELAYER_H

#define DATABASELAYER_H

#include

#include

class DataBaseLayer

{

public:

DataBaseLayer();

bool dbopen();

void dbclose();

QSqlTableModel* getViewTableModel(QString table);

private:

QSqlDatabase db;

};

#endif // DATABASELAYER_H

#include

#include "databaselayer.h"

DataBaseLayer::DataBaseLayer()

{

db = QSqlDatabase::addDatabase("QMYSQL");

db.setDatabaseName("test");

db.setUserName("root");

db.setPassword("admin");

}

bool DataBaseLayer::dbopen()

{

return db.open();

}

void DataBaseLayer::dbclose()

{

db.close();

}

QSqlTableModel* DataBaseLayer::getViewTableModel(QString table)

{

QSqlTableModel *model = new QSqlTableModel;

model->setTable(table);

model->setSort(0,Qt::AscendingOrder);

model->setHeaderData(0,Qt::Horizontal,"Name");

model->setHeaderData(1,Qt::Horizontal,"Sex");

model->setHeaderData(2,Qt::Horizontal,"age");

model->select();

return model;

}

#ifndef WIDGET_H

#define WIDGET_H

#include

#include

#include "databaselayer.h"

namespace Ui {

class Widget;

}

class Widget : public QWidget

{

Q_OBJECT

public:

explicit Widget(QWidget *parent = 0);

~Widget();

private slots:

void on_Widget_destroyed();

private:

Ui::Widget *ui;

DataBaseLayer *db;

QSqlTableModel *model;

void closeEvent(QCloseEvent *);

};

#endif // WIDGET_H

#include "widget.h"

#include "ui_widget.h"

#include

Widget::Widget(QWidget *parent) :

QWidget(parent),

ui(new Ui::Widget)

{

ui->setupUi(this);

db = new DataBaseLayer;

QString table = "qt_user";

model = db->getViewTableModel(table);

ui->tableView->setModel(model);

}

Widget::~Widget()

{

delete ui;

delete db;

}

void Widget::closeEvent(QCloseEvent *)

{

db->dbclose();

}

#-------------------------------------------------

#

# Project created by QtCreator 2011-09-02T12:20:44

#

#-------------------------------------------------

QT += core gui

QT +=sql

TARGET = sql

TEMPLATE = app

SOURCES += main.cpp\

widget.cpp \

databaselayer.cpp

HEADERS += widget.h \

databaselayer.h

FORMS += widget.ui

在数据库中添加数据信息:

0_1314953782w33w.gif

分析:

SQL的insert into数据插入语句:insert intotablename values(value1,value2,..);

*当您的数据表的字段使用varchar类型的时候,value*记得加上‘’哦,eg:insert into qt_user('hello','girl',10);

程序运行效果:

0_1314954017p5Hr.gif

0_1314954048JTCJ.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值