详解Ubuntu10.10下Qt连接Mysql数据库

移动开发
本文介绍的是详解Ubuntu10.10下Qt连接Mysql数据库,Mysql 也成为了一种流行的数据库,我们先来看内容。

详解Ubuntu10.10下Qt连接Mysql数据库是本文要介绍的内容,很详细的步骤,我们先来看内容。

***步:安装qt开发环境

  1. xhy@xhy-desktop:~$sudo apt-get install qt4-dev-tools qt4-doc qt4-qtconfig qt4-demos qt4-designer 

第二步:安装mysql开发环境

  1. xhy@xhy-desktop:~$sudo apt-get install mysql-server mysql-client  
  2. xhy@xhy-desktop:~$sudo apt-get install libmysqlclient15-dev   
  3. xhy@xhy-desktop:~$sudo apt-get install libqt4-sql-mysql  
  4. xhy@xhy-desktop:~$sudo /etc/init.d/mysql restart 

第三步:给普通用户授权操作数据库

  1. xhy@xhy-desktop:~$ mysql -u root -p      (root登录数据库)  
  2. mysql> create database mydb;                     (创建一个数据库)  
  3. mysql> grant all privileges on *.* to username@localhost identified by 'password';   
  4. mysql> quit; 

给特定用户分配数据操作权限的格式是:

grant 权限1,权限2,...权限n on 数据库名称.表名称 to 用户名@用户ip地址 identified by '密码';

第四步:测试环境

  1. #include <QApplication> 
  2. #include <QtSql> 
  3. #include <QTableView> 
  4. #include <iostream> 
  5.  
  6. using namespace std;  
  7.  
  8. int main(int argc, char *argv[])   
  9. {  
  10. QApplication app(argc, argv);  
  11.  
  12. QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");  
  13. db.setHostName("localhost");  
  14. db.setDatabaseName("mydb");  
  15. db.setUserName("username");  
  16. db.setPassword("password");  
  17. db.open();  
  18.  
  19. QSqlQuery query;  
  20. query.exec("create table hello(id bigint not null auto_increment,name varchar(255),age bigint,primary key (id))");  
  21. /*query.exec("insert into hello(name, age) values('xiaoxi', 18)");  
  22. query.exec("insert into hello(name, age) values('xiaonan', 19)");  
  23. query.exec("insert into hello(name, age) values('xiaobei', 20)");  
  24. query.exec("insert into hello(name, age) values('xiaodong', 21)");*/  
  25.  
  26. //ODBC风格  
  27. query.prepare("insert into hello(name, age)" "values(?, ?)");  
  28. query.addBindValue("xiaoxi");  
  29. query.addBindValue(18);  
  30. query.exec();  
  31. query.addBindValue("xiaonan");  
  32. query.addBindValue(19);  
  33. query.exec();  
  34. query.addBindValue("xiaobei");  
  35. query.addBindValue(20);  
  36. query.exec();  
  37. query.addBindValue("xiaodong");  
  38. query.addBindValue(21);  
  39. query.exec();  
  40.  
  41. //Oracle风格  
  42. /*query.prepare("insert into hello(name, age) values(:name, :age)");  
  43. query.bindValue(":name", "xiaoxi");  
  44. query.bindValue(":age", 18);  
  45. query.exec();  
  46. query.bindValue(":name", "xiaonan");  
  47. query.bindValue(":age", 19);  
  48. query.exec();  
  49. query.bindValue(":name", "xiaobei");  
  50. query.bindValue(":age", 20);  
  51. query.exec();  
  52. query.bindValue(":name", "xiaodong");  
  53. query.bindValue(":age", 21);  
  54. query.exec();*/  
  55.  
  56. QSqlQueryModel *model = new QSqlQueryModel;  
  57. model->setQuery("select * from hello");  
  58. model->setHeaderData(0, Qt::Horizontal, "id");  
  59. model->setHeaderData(1, Qt::Horizontal, "name");  
  60. model->setHeaderData(2, Qt::Horizontal, "age");  
  61. QTableView *view = new QTableView;  
  62. view->setWindowTitle("QSqlQueryModel");  
  63. view->setModel(model);  
  64. view->show();  
  65.  
  66. /*QSqlTableModel *model = new QSqlTableModel;  
  67. model->setTable("hello");  
  68. model->select();  
  69. for (int i = 0; i < model->rowCount(); ++i)   
  70. {  
  71. QSqlRecord record = model->record(i);  
  72. int id = record.value(0).toInt();  
  73. QString name = record.value(1).toString();  
  74. int age = record.value(2).toInt();  
  75. cout << id << " " << qPrintable(name) << " " << age << endl;  
  76. }*/  
  77. db.close();  
  78. return app.exec();  
  79. }  

编译:

  1. xhy@xhy-desktop:~$ qmake -project  
  2. xhy@xhy-desktop:~$ qmake 

一定别忘了在工程的.pro文件里加上下面一行:

  1. QT += sql  
  2. xhy@xhy-desktop:~$make  
  3. xhy@xhy-desktop:~$./mysql 

小结:关于详解Ubuntu 10.10下Qt连接Mysql数据库的内容介绍完了,希望本文对你有所帮助!

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-07-05 10:55:14

Linux Qt 移植

2011-07-05 11:10:23

Linux Qt 移植

2011-08-29 15:52:12

2011-03-11 12:57:36

UBUNTU10.10安装LAMP

2011-07-01 12:52:50

Ubuntu Qt wxWidgets

2011-09-02 16:38:26

UbuntuNTFS

2011-09-07 14:01:34

ubuntuPHP

2011-08-30 15:53:07

Ubuntussh

2010-11-18 09:40:08

2011-08-29 14:53:16

UbuntuMySQLserver

2011-07-05 10:03:00

Qt MYSQL 数据库

2011-09-02 17:12:42

UbuntuGNOME 3

2011-09-06 11:11:29

ubuntu3D效果

2011-06-10 10:31:57

QT mysql linux

2011-08-29 11:16:27

Ubuntu

2011-09-05 18:11:39

Ubuntu

2011-09-02 16:23:19

wubiUbuntu

2011-01-19 10:03:24

Ubuntu

2011-09-01 13:35:50

Ubuntu中文man

2011-07-05 09:54:04

点赞
收藏

51CTO技术栈公众号