mysql配置及使用(qt)

1、windows下安装mysql(压缩包格式)

1.1. 配置环境

1.1.1. 变量名:MYSQL_HOME

1.1.2. 变量值:E:\mysql-5.7.28-win32

1.2. 解压 管理员运行cmd

1.3. 执行命令:mysqld --initialize-insecure --user=mysql 在./目录下生成data目录

1.4. 安装MySQL:mysqld -install

1.5. 启动服务:net start MySQL

1.6. 重启:service mysqld restart

1.7. 登录:mysql -u root -p(初始没有密码直接回车)

1.8. 修改密码:set password for root@localhost = password(‘123’);

1.9. 查看数据库全部编码格式: show variables like ‘character%’;

1.10. 查看表的编码:show create table 表名;

1.11. 显示所有数据库:show databases;

1.12. 选择数据库:use 数据库名;

1.13. 显示表:show tables;

1.14. 显示表数据:select * from 表名;

1.15. 卸载数据库:sc delete mysql

1.16. 编码格式:配置ini文件 参考:https://www.cnblogs.com/muxisc/p/11916968.html
https://www.cnblogs.com/RayWang/p/9347874.html

1.17. 乱码问题:创建数据库和表时选择UTF8格式,修改ini配置文件,qt编码与其一致QTextCodec::setCodecForLocale(QTextCodec::codecForName(“UTF-8”));

2、数据库连接

//统一编码	
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
	QSqlDatabase _ConnectDB = QSqlDatabase::addDatabase("QMYSQL");
	_ConnectDB.setHostName("localhost");
	_ConnectDB.setDatabaseName("motiongait");
	_ConnectDB.setUserName("root");
	_ConnectDB.setPassword("123456");
	_ConnectDB.setPort(3306);
	if (_ConnectDB.open())
	{
		QMessageBox::warning(NULL, QStringLiteral("提示"), "OPEN SUCCEED", QMessageBox::Yes);
		//检测文件 校准 并 上传
		testFileCalibrationAndUpload();//具体上传操作

	}
	else
	{
		QMessageBox::warning(NULL, QStringLiteral("提示"), "OPEN FILED", QMessageBox::Yes);
	}
	_ConnectDB.close();

3、数据库上传

1、将数据拼接 单表数据量少于99个时,可以使用arg()拼接。数据量超过使用QTextStream()拼接

2、注意插入语句中单引号,int等类型不加 、char等类型加

QSqlQuery _query;//用于执行SQL语句
QTextStream writeStr(&tmpStr);
writeStr << 变量;
//插入
QString str = QString("insert into test_data values (%1)").arg(tmpStr);
	bool ret = query.exec(str);
	if (!ret)
	{
		qDebug() << query.lastError().text();
	}
	//查询最后一条ID
	qDebug() << "1====" << query.lastInsertId().toInt();
	//select LAST_INSERT_ID() as id

4、数据库更新

//更新该ID对应的filename
QString("update test_data set fileName = '%1' where id = %2").arg(tmpFileName).arg(existID);

5、数据库删除

query.exec(“delete from 表名 where name = “要删除的名””);

6、数据库遍历

QString  selectStr = “select * from 表名”;
query.exec(selectStr);
While(query.next())//相当于指针
		{
			//用value获取转换
			qDebug()<<query.value(0).toInt()
					<<query.value(“name”).toString();
			//用record 相同
			QSqlRecord record = query.record();
			qDebug()<<record.value(0).toInt();
			qDebug()<<record.size();

7、使用QSqlTableModel查看数据库

(1)使用前需要打开数据库

QSqlTableModel * model = new QSqlTableModel(this);
ui.tableView->setModel(model);
modle->setTable("表名");
model->select();//设置查询

//设置提交模式(手动提交)
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
//点击按钮 添加一条空记录
QSqlRecord record = model->record();
int count = model->rowCount();//共多少行
model->insertRecord(count,record);//将空记录插入最后一行
//提交
model->submitall();
//撤销
model->revertAll();//撤销后再次执行一次提交
//查询功能
model->setFilter("将要查询的字符串");
model->select();

8、数据库表问题

1、当设置自增ID后, 使用插入语句时,字符拼接需将第一个值设置为0或NULL

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值