mysql 与QT的连接
第一步:安装
qt开发环境
bi@bi-desktop:~$sudo apt-get install qt4-dev-tools qt4-doc qt4-qtconfig qt4-demos qt4-designer
第二步:安装
mysql开发环境
bi@bi-desktop:~$sudo apt-get install mysql-server mysql-client
bi@bi-desktop:~$sudo apt-get install libmysqlclient15-dev
bi@bi-desktop:~$sudo apt-get install libqt4-sql-mysql
bi@bi-desktop:~$sudo /etc/init.d/mysql restart
第三步:给普通用户授权操作数据库
bi@bi-desktop:~$ mysql -u root -p //之后输入密码就可以连接的上了
mysql> create database hanle; (创建一个数据库) //特别要注意后面的分号,最开始我用的时候就吃亏在那个地方
mysql> grant all privileges on *.* to han@localhost identified by '123456';
mysql> quit;
给特定用户分配数据操作权限的格式是:
grant 权限1,权限2, on 数据库名称 表名称 to 用户名@当前主机 ip 地址 identified by '密码';
第四步:测试环境
//注意此步实在创建的QT控制台应用程序
#include <QApplication>
#include <QtSql>
#include <QTableView>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("hanle");
db.sethan("han");
db.setpassword("123456");
db.open();
QSqlQuery query;
query.exec("create table hello(id bigint not null auto_increment,name varchar(255),age
bigint,primary key (id))");
/*query.exec("insert into hello(name, age) values('xiaoxi', 18)");
query.exec("insert into hello(name, age) values('xiaonan', 19)");
query.exec("insert into hello(name, age) values('xiaobei', 20)");
//ODBC
风格
query.prepare("insert into hello(name, age)" "values(?, ?)");
query.addBindValue("xiaoxi");
query.addBindValue(18);
query.exec();
query.addBindValue("xiaonan");
query.addBindValue(19);
query.exec();
query.addBindValue("xiaobei");
query.addBindValue(20);
query.exec();
query.addBindValue("xiaodong");
query.addBindValue(21);
query.exec();
//Oracle
风格
/*query.prepare("insert into hello(name, age) values(:name, :age)");
query.bindValue(":name", "xiaoxi");
query.bindValue(":age", 18);
query.exec();
query.bindValue(":name", "xiaonan");
query.bindValue(":age", 19);
query.exec();
query.bindValue(":name", "xiaobei");
query.bindValue(":age", 20);
query.exec();
query.bindValue(":name", "xiaodong");
query.bindValue(":age", 21);
query.exec();*/
QSqlQueryModel *model = new QSqlQueryModel;
model->setQuery("select * from hello");
model->setHeaderData(0, Qt::Horizontal, "id");
model->setHeaderData(1, Qt::Horizontal, "name");
model->setHeaderData(2, Qt::Horizontal, "age");
QTableView *view = new QTableView;
view->setWindowTitle("QSqlQueryModel");
view->setModel(model);
view->show();
/*QSqlTableModel *model = new QSqlTableModel;
model->setTable("hello");
model->select();
for (int i = 0; i < model->rowCount(); ++i)
{
QSqlRecord record = model->record(i);
int id = record.value(0).toInt();
QString name = record.value(1).toString();
int age = record.value(2).toInt();
cout << id << " " << qPrintable(name) << " " << age << endl;
}*/
db.close();
return app.exec();
}
编译:
.pro文件里加上下面一行:
QT += sql
mysql 与QT的连接的更多相关文章
- vs整合MySQL和QT
23:37:23 2019-08-12 尝试用vs写一个程序整合MySQL和QT 参考资料:https://blog.csdn.net/qq_35987486/article/details/8406 ...
- 解决 LINUX mysql不能通过IP连接 只能localhost 权限没问题情况下
最近朋友的一个服务器出现了一个奇怪的问题,弄了两个星期没有解决,在哥坚持不懈的努力下,终于解决了问题.发出来给需要的朋友. 问题:php程序连接mysql只能使用localhost,不能使用127.0 ...
- 安装好mysql后允许远程连接
安装好mysql后允许远程连接 http://blog.sina.com.cn/s/blog_3eba8f1c0100tsox.html http://blog.csdn.net/zxyvb/arti ...
- 如何登录mysql? cmd怎么连接mysql数据库
Mysql开源数据库,任何人都可以下载安装使用.那么安装好的mysql如何登陆连接mysql数据库呢? 连接mysql数据库的几种方法 一 Mysql命令行连接 一般对于刚刚安装好的mysql,如果勾 ...
- 远程连接mysql,mysql如何开启远程连接
很多时候,mysql只需要开本地连接,也就是本机(服务器本身)连接就可以,默认也是这样,默认也不支持远程连接 但有的时候,我们需要将mysql独立出一台主机或数据库,放到另一台机器的时候,这时,就需要 ...
- MySQL优化二(连接优化和缓存优化)
body { font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 1.6; padding-top: 10 ...
- mysql自动断开该连接解决方案
mysql连接的空闲时间超过8小时后 MySQL自动断开该连接解决方案 作者: MySQL 的默认设置下,当一个连接的空闲时间超过8小时后,MySQL 就会断开该连接,而 c3p0 连接池则以为该被断 ...
- 连接mysql用mysql_connect不能连接
用mysqli_connect就可以解决. mysqli_array()有连个参数,第一个是连接mysql名. php遇到这个警告Warning: Use of undefined constant ...
- mysql数据库可以远程连接或者说用IP地址可以访问
mysql数据库可以远程连接或者说用IP地址可以访问 一般情况不建议直接修改root的权限, 先看下,自己mysql数据库的用户级权限 mysql -u root -p----->用root登陆 ...
随机推荐
- Django (六) 视图 views
views 1. 视图及HttpRequest 和HttpResponse Django中的视图主要用来接受Web请求,并做出响应. 视图的本质就是一个Python中的函数 视图的响应分为两大类 1) ...
- dzzoffice 任意文件删除漏洞分析
dzzofiice 任意文件删除漏洞 \upload\dzz\system\dzzcp.php第199行 elseif($do=='deleteIco'){ $arr=array(); $ ...
- Bear and Tower of Cubes Codeforces - 680D
https://codeforces.com/contest/680/problem/D 一道2D,又是搞两个小时才搞出来...不过好在搞出来了 官方题解:可以证明对于m,设a是满足a^3<=m ...
- centOS6.5 usr/src/kernels下为空
用uname -r查看内核版本为 2.6.32-431.el6.x86_64 usr/src/kernels下为空 需要执行两个安装 yum install kernel-headers yum in ...
- Ubuntu-通过v2版本的rancher安装部署k8s
环境: ubuntu:16.04+(64位) CPU:2C MEM:>4G docker:17.03.2 1.13.1 1.12.6 基础配置:(若是云服务器,下列只需要放行端口) >&g ...
- vue 中的router 配置问题 导致的内存溢出~~~
最近的项目用到 vue, 各种踩坑中. 其中一个就是router映射表写的稍有不慎,就会出现内存溢出的问题, 而且也不会具体告诉你哪里出错,所以很是头疼~~~ 出错多了,发现了一些router的一些规 ...
- On the way to the park Gym - 101147I 几何
http://codeforces.com/gym/101147/problem/I I. On the way to the park time limit per test 5 seconds m ...
- kafka基础三
消费者消费消息过程(一) 消费者组 消费者是以消费者组consumer group的方式进行消息消费的,一个消费者组是由一个或者多个消费者组成的,共同消费一个topic,在每个分区同一时间只能由消费者 ...
- spring mvc添加静态资源访问时@Controller无效的解决
web.xml中的url-pattern设置为/,添加mvc:resources访问静态资源时,@Controller无效的问题 web.xml: <servlet> <servle ...
- 7、斐波那契数列、跳台阶、变态跳台阶、矩形覆盖------------>剑指offer系列
题目:斐波那契数列 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0). f(n) = f(n-1) + f(n-2) 基本思路 这道题在剑指offe ...