大三软件工程小项目-小技术集合-服务端连接MySQL及对表插入、删除、查询
来源:互联网 发布:python股票分析系统 编辑:程序博客网 时间:2024/06/06 00:43
服务端源码下载地址为:
我们可以看见构造函数里面要传入用户名,密码和要传入的库
这里的话有一个不太好的地方,就是当要对数据库进行操作的时候,我这采用字符串重组,这是比较low的方法,其实有更好的方法。
http://download.csdn.net/detail/qq78442761/9768662
这连接数据库之前,先要保证数据库是开启状态,如下图所示:
随后就可以用服务端登录了。
如下图所示:
我们先来看下此程序中关于mysql的代码:
connmysql.h
#ifndef CONNMYSQL_H#define CONNMYSQL_H#include <QObject>#include <QDebug>#include <QStringList>#include <QSqlDatabase>#include <QSqlQuery>#include <QString>#include <QMessageBox>#include <QSqlQueryModel>#include <QTableView>#include <QVariant>//返回两个值struct QStringAndBool{ QString MesQString; bool MesBool;};class ConnMysql : public QObject{ Q_OBJECTpublic: explicit ConnMysql(QString UserName,QString PassWd,QString DataBase,QObject *parent = 0); QStringAndBool LinkMySQL(); //连接MYSQL void SelectTable(QString selectQString); //查询数据库 void DelectUser(int UserID); //删除用户 void InsertUser(QString userName,char *temp2); //添加用户 void DisLinkMysql(); //断开MySQLsignals:public slots:private: QString m_UserName; //登录MySQL用户名 QString m_PassWd; //登录MySQL密码 QString m_DataBase; //登录到的个数据库 QSqlDatabase db; QSqlQueryModel *model; //查询数据库 QTableView *view; //显示查询表};#endif // CONNMYSQL_Hconnmysql.cpp
#include "connmysql.h"ConnMysql::ConnMysql(QString UserName, QString PassWd,QString DataBase,QObject *parent) : QObject(parent){ m_UserName=UserName; m_PassWd=PassWd; m_DataBase=DataBase; model=new QSqlQueryModel; view=new QTableView;}void ConnMysql::DisLinkMysql(){ QString SqlQuery="exit"; model->setQuery(SqlQuery);}void ConnMysql::DelectUser(int UserID) //用户ID{ QString SqlQuery="delete from user where id="; SqlQuery.append(QString::number(UserID)); //qDebug()<<SqlQuery; model->setQuery(SqlQuery);}void ConnMysql::InsertUser(QString userName, char *temp2){ qDebug()<<userName; qDebug()<<temp2; char buf[1024]="insert into user values(NULL,'"; strcat(buf,userName.toUtf8().data()); strcat(buf,"','"); int il=strlen(buf); buf[il]=*temp2; qDebug()<<"buf[il]"<<buf[il]; strcat(buf,"',"); il=strlen(buf); for(int i=0;i<7;i++) buf[il+i]=temp2[1+i]+48; strcat(buf,")"); qDebug()<<buf; model->setQuery(buf);}void ConnMysql::SelectTable(QString selectQString){ model->setQuery(selectQString); model->setHeaderData(0,Qt::Horizontal,"id"); model->setHeaderData(1,Qt::Horizontal,"角色"); model->setHeaderData(2,Qt::Horizontal,"等级"); model->setHeaderData(3,Qt::Horizontal,"金币"); view->setModel(model); view->setMinimumWidth(430); view->show();}QStringAndBool ConnMysql::LinkMySQL(){ db=QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("localhost"); db.setDatabaseName(m_DataBase); db.setUserName(m_UserName); db.setPassword(m_PassWd); QStringAndBool returnValues; if(!db.open()) { QMessageBox::information(NULL,"提示","数据库连接失败!"); returnValues.MesQString="数据库连接失败!"; returnValues.MesBool=0; return returnValues; } else { QMessageBox::information(NULL,"提示","数据库连接成功!",QMessageBox::Ok); returnValues.MesQString="数据库连接成功!"; returnValues.MesBool=1; return returnValues; }}
我们可以看见构造函数里面要传入用户名,密码和要传入的库
在mainwindow.cpp里面可以看见他是这样调用的
void MainWindow::LoginMysql(){ if(ui->SQLUserlineEdit->text()==""&&ui->SQLPasswdlineEdit->text()==""&&ui->DataBaselineEdit->text()=="") { QMessageBox::information(this,"提示","有一项为空,请填写完整",QMessageBox::Yes); ui->CMDplainTextEdit->appendPlainText(CurrTime::currentDateTime()+"用户登录输入未完整"); } else { Mysql=new ConnMysql(ui->SQLUserlineEdit->text(),ui->SQLPasswdlineEdit->text(),ui->DataBaselineEdit->text()); MysqlLinkValues=Mysql->LinkMySQL(); SetBtn(MysqlLinkValues.MesBool); ui->CMDplainTextEdit->appendPlainText(CurrTime::currentDateTime()+MysqlLinkValues.MesQString); }}
这里的对表进行操作插入、删除、查询
void ConnMysql::DisLinkMysql(){ QString SqlQuery="exit"; model->setQuery(SqlQuery);}void ConnMysql::DelectUser(int UserID) //用户ID{ QString SqlQuery="delete from user where id="; SqlQuery.append(QString::number(UserID)); //qDebug()<<SqlQuery; model->setQuery(SqlQuery);}void ConnMysql::InsertUser(QString userName, char *temp2){ qDebug()<<userName; qDebug()<<temp2; char buf[1024]="insert into user values(NULL,'"; strcat(buf,userName.toUtf8().data()); strcat(buf,"','"); int il=strlen(buf); buf[il]=*temp2; qDebug()<<"buf[il]"<<buf[il]; strcat(buf,"',"); il=strlen(buf); for(int i=0;i<7;i++) buf[il+i]=temp2[1+i]+48; strcat(buf,")"); qDebug()<<buf; model->setQuery(buf);}void ConnMysql::SelectTable(QString selectQString){ model->setQuery(selectQString); model->setHeaderData(0,Qt::Horizontal,"id"); model->setHeaderData(1,Qt::Horizontal,"角色"); model->setHeaderData(2,Qt::Horizontal,"等级"); model->setHeaderData(3,Qt::Horizontal,"金币"); view->setModel(model); view->setMinimumWidth(430); view->show();}
这里的话有一个不太好的地方,就是当要对数据库进行操作的时候,我这采用字符串重组,这是比较low的方法,其实有更好的方法。
1 0
- 大三软件工程小项目-小技术集合-服务端连接MySQL及对表插入、删除、查询
- 大三软件工程小项目-小技术集合-大纲
- 大三软件工程小项目-小技术集合-Qt状态栏设置
- 大三软件工程小项目-小技术集合-socket环境搭建
- 大三软件工程小项目-小技术集合-客户端界面重画
- 大三软件工程小项目-小技术集合总结
- 大三软件工程小项目-小技术集合-读取XML文件及运行外部程序
- 大三软件工程小项目-小技术集合-tcp服务器搭建及客户端
- 大三软件工程小项目-小技术集合-3DES加密及解密
- vc++连接mysql数据库,并对数据库中的表进行查询、插入、删除、更新等
- mysql查询锁表及删除连接
- java连接mysql-查询,插入,更新,删除
- android小项目 连接PHP开发的服务端
- 使用java连接mysql数据库进行数据的查询插入更新及删除
- java连接数据库对两张表进行查询对比的小项目
- java连接数据库(SQL Server 2008)的小实例,包括对数据库表的查看,插入,更新,删除等操作
- JavaWeb JDBC连接MySql数据库小项目
- php 连接mysql数据库,查询、插入、更新、删除功能
- Java之数组array和集合list、set、map
- 旋转数组的最小数字
- 学习Spring Cloud第八课(通过代码自定义配置Ribbon)
- SQL性能优化十条经验
- java中获取服务器的IP和端口
- 大三软件工程小项目-小技术集合-服务端连接MySQL及对表插入、删除、查询
- react-native热更新闪屏问题
- git使用详解
- 11款PHP集成开发环境
- 分而治之——Different Ways to Add Parentheses
- Retrofit上传图文
- Rancher如何按计算资源调度
- HDU1159
- SQL主键简单表述