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

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

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

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

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

第二步:安装mysql开发环境

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

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

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

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

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

第四步:测试环境

#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("mydb");  
db.setUserName("username");  
db.setPassword("password");  
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)");  
query.exec("insert into hello(name, age) values('xiaodong', 21)");*/  
 
//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();  
}  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.

编译:

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

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

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

小结:关于详解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

2010-11-18 09:40:08

2011-09-07 14:01:34

ubuntuPHP

2011-08-30 15:53:07

Ubuntussh

2011-09-02 16:38:26

UbuntuNTFS

2011-08-29 14:53:16

UbuntuMySQLserver

2011-09-02 17:12:42

UbuntuGNOME 3

2011-09-06 11:11:29

ubuntu3D效果

2011-07-05 10:03:00

Qt MYSQL 数据库

2011-09-05 18:11:39

Ubuntu

2011-08-29 11:16:27

Ubuntu

2011-06-10 10:31:57

QT mysql linux

2011-09-02 16:23:19

wubiUbuntu

2011-01-19 10:03:24

Ubuntu

2011-09-01 13:35:50

Ubuntu中文man

2011-09-19 10:25:59

VimUbuntu
点赞
收藏

51CTO技术栈公众号