Ubuntu和QT如何使用访问Oracle数据库 (ubuntu qt访问oracle数据库)

随着信息化的发展,越来越多的企业开始采用数据库管理系统进行数据存储和处理。而Oracle数据库因为其强大的功能、高可用性、可靠性和灵活性等方面的优势,成为目前企业中使用最广泛的数据库之一。而对于使用Linux操作系统的开发者来说,Ubuntu是一种常用的Linux发行版,而QT则是一种跨平台应用程序开发框架,如何在Ubuntu和QT环境下使用访问Oracle数据库呢?接下来,本文将详细介绍该方案的实现方法。

一、安装Oracle客户端软件

在Ubuntu中使用Oracle数据库,首先需要安装相应的Oracle客户端软件。Oracle公司官方提供了Linux版本的客户端软件,具体安装步骤如下:

1. 下载Oracle客户端软件,可以从Oracle官网上下载相应版本的客户端软件,也可以从Oracle的镜像源中下载。本文所介绍的是Oracle 11g客户端软件的安装步骤。

2. 解压Oracle客户端软件,解压后会出现一个文件夹,进入该文件夹并按照下面的步骤操作:

3. 打开终端,使用root用户登录系统,进入解压后的文件夹中,执行以下命令,执行过程中需要根据提示输入信息并作出相应操作:

./runInstaller

4. 在安装过程中,需要注意以下几点:

a. 安装界面中有“指定安装类型”的选项,选择“Administrator”即可。

b. 在“选择安装类型”界面中,选择“Custom”并点击“Next”。

c. 在“选择产品组件”界面中,可以不选其它组件,直接点击“Next”。

d. 在“指定产品安装位置”界面中,可以选择默认位置,也可以点击“Browse”选择其它位置。

e. 在“指定Oracle home”的界面中,可以选择默认的ORACLE_HOME位置,也可以点击“Browse”选择其它位置。

f. 点击“Next”按钮后,系统会自动进行检查,检查通过后,会跳转到“Summary”界面,确认无误后,可以点击“Install”按钮开始安装。

g. 等待安装完成之后,可以点击“Close”按钮关闭安装界面。

二、安装QT开发环境

QT是一种跨平台应用程序开发框架,可以在各种操作系统上开发图形界面应用程序。要在Ubuntu系统中使用QT,需要先安装QT的开发环境,包括QT Creator等工具。QT的开发环境可以从官网上下载,也可以从Ubuntu的软件中心中下载。本文介绍使用Ubuntu的软件中心下载QT的开发环境的方法:

1. 打开Ubuntu的软件中心,在搜索框中输入“QT Creator”关键字,然后点击搜索。

2. 在搜索结果中,选择合适版本的QT Creator,并点击“Install”按钮进行安装。

3. 等待安装完成后,可以在应用程序中找到QT Creator,并打开该软件。

三、连接Oracle数据库

在Ubuntu和QT环境下连接Oracle数据库,需要使用相应的Oracle客户端库文件。连接Oracle数据库的方法,可以通过以下几个步骤实现:

1. 在QT Creator中创建一个新项目,选择“Qt Widgets Application”模板,并输入项目的名称,然后点击“Next”按钮。

2. 在“Add Kits”对话框中选择系统中已存在的QT版本,然后点击“Next”按钮。

3. 在“Create in”对话框中选择项目的创建路径,并点击“Next”按钮。

4. 在“Class Information”对话框中,可以选择自动生成项目的源代码,也可以手动编写源代码。

5. 在Qt项目中使用访问Oracle数据库,需要在项目的.pro文件中添加相应的配置信息,具体的配置信息如下:

# Qt project configuration

QT += core gui sql

# Oracle client configuration

LIBS += -L/usr/lib/oracle/11.2/client64/lib -lclntsh

# Include configuration

INCLUDEPATH += /usr/lib/oracle/11.2/client64/include/

6. 在QT Creator的“Projects”选项卡中,选择“Build & Run”选项,然后在“Build Settings”页签中选择“Desktop QT 5.9.9 GCC 64bit”配置。

7. 在项目中使用以下代码进行连接Oracle数据库:

#include

#include

#include

QSqlDatabase db = QSqlDatabase::addDatabase(“QOCI”);

db.setHostName(“localhost”);

db.setDatabaseName(“TestDB”);

db.setUserName(“test”);

db.setPassword(“test123”);

if(!db.open()){

qDebug()

return;

}

QSqlQuery query = QSqlQuery(db);

query.exec(“SELECT * from test_table”);

while (query.next()) {

qDebug()

}

db.close();

通过以上步骤,我们就可以在Ubuntu和QT环境下成功连接Oracle数据库,实现数据的存储和处理。

相关问题拓展阅读:

ubuntu linux 下使用Qt连接MySQL数据库

Linux下完整的MySQL开发需要安装服务器端,如果安装客户端也没什么不好。直接在软件中心搜mysql,把client和server选上。

  环境说明:

  ubuntu

10.04.2

  QtSDK

(1.5G安装包的那个)

  mysql5.1

  1.安装MySQL

  Linux下完整的MySQL开发需要安装服务器端,如果安装客户端也没什么不好。直接在软件中心搜mysql,把client和server选上。

  server在安装时会提示为root用户设置密码,设一个好了。

  我使用的是mysql5.1版本,用户名密码存储在一个叫mysql的数据库里,只有管理员级别才能看到。

  如果直接在终端中输入

mysql,可能会提示ERROR

1045

(28000),这是因为这时候你是以自己用户名访问数据库,而目前数据库中只有一个root用户。没关系,如果有必要,可以添加一个用户进去:

  mysql

-uroot

-p

以root用户登录

  grant

usage

on

*.*

to

dummy@localhost;

授权名为dummy的用户本地登录,这里换成自己的用户名就可以了

  不过这时候直接mysql只有普通的权限,创建数据库、操作mysql都是不可以的,如果真有将其赋予管理员权限的需要,可以自己查阅有关资料。

  2.安装Qt的MySQL驱动。

  方法一:直接sudo

apt-get

install

libqt4-sql-mysql

,这是Qt4的mysql驱动,就不用自己费劲编译了,不过可能会额外下载一些东西。

  将

/usr/lib/qt4/plugins/sqldrivers/libqsqlmysql.so拷贝到你的QtSDK

sqldrivers目录下,我当时是直接用普通权限安装,目录为:~/QtSDK/Desktop/Qt/473/gcc/plugins/sqldrivers

  胡悔方法二:其实你也可以sudo

apt-get

download

libqt4-sql-mysql,把包解压缩,然后把里面的so文件搜出来直接拷贝到瞎做乎那里。

  方法三:乖乖按照官方方法编译,但是貌似可行性不大,因为新版本的QtSDK并没有src目录,默认也没有mysql的驱动。

  3.做个demo试一下

  记得在pro文件中

QT

+=那里加上sql,否则qmake是不会去找sql的相关部分的

  复制代码代码如下:

  #include

QtCore/QCoreApplication

  #include

QSqlDatabase

  #include

QDebug

  int

main(int

argc,

char

*argv)

  {

  QCoreApplication

a(argc,

argv);

  QSqlDatabase

db=QSqlDatabase::addDatabase(“QMYSQL”);

  db.setHostName(“localhost”);

  db.setDatabaseName(“study”);

  db.setUserName(“root”);

  db.setPassword(“tyh”);

  if(!db.open()){

  qDebug()

“Unable

to

open

database”;

  }else{

  qDebug()

“Database

connection

established”;

  }

  return

a.exec();

  }

  这里study这个数据库之前磨悉我已经创建过了,如果连接成功,就会显示Database

connection

established。

我是建立的控制台程序哈。

 软件教程小编推荐:

 Linux安装配置MariaDB数据库全程详解

 Linux系统怎么设置开机密码?

 Linux启动菜单修改教程

QtSql编程RedHat linux系统下oracle数据库中文乱码

统一使用utf-8编码就可以了,其他编码不建议考虑,统一utf-8能够做到各个平台的更大的兼容性。

首先确认你的NLS_LANG环简帆境变量是AMERICAN_AMERICA.US7ASCII,拼写无误

统脊斗一编码设拦野雹置:

统一GBK编码(gbk或gb18030)

QTextCodec *gbkTC = QTextCodec::codecForName(“gbk”);

    QTextCodec::setCodecForTr(gbkTC );

    QTextCodec::setCodecForLocale(gbkTC );

    QTextCodec::setCodecForCStrings(gbkTC );

统一UTF8编码(utf-8或utf8)

QTextCodec *utg8TC = QTextCodec::codecForName(“utf-8”);

    QTextCodec::setCodecForTr(utg8TC );

    QTextCodec::setCodecForLocale(utg8TC );

    QTextCodec::setCodecForCStrings(utg8TC );

编码转换/前提也是要设置默认编码,然后针对来源字符串的编码进行转换,例如:

QTextCodec *gbkTC = QTextCodec::codecForName(“gb18030”); 

QTextCodec *utg8TC = QTextCodec::codecForName(“utf-8”);

QTextCodec::setCodecForTr(gbkTC);

QTextCodec::setCodecForLocale(gbkTC);

QTextCodec::setCodecForCStrings(gbkTC);

1. UTF-8 转换 GBK

QString UTF2GBK(QString utfStr)

{

  return gbkTC->toUnicode(utfStr.toLocal8Bit());

}

2 GBK 转换 UTF-8

QString GBK2UTF(QString gbkStr)

{

  return utg8TC->toUnicode(gbkStr.toUtf8());

}

程序显示数据库里面的文字, 程序编码要和数据库的编码对应,

我做QT + sqlite3,sqlite3编码是喊渗GB2312, main.cpp里必须是GB2312,否则就显示轮渗厅乱码.

对应的American_Americaca_US7ASCII编码, 你腊隐设置UTF-8试试看.

ubuntu qt访问oracle数据库的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于ubuntu qt访问oracle数据库,Ubuntu和QT如何使用访问Oracle数据库,ubuntu linux 下使用Qt连接MySQL数据库,QtSql编程RedHat linux系统下oracle数据库中文乱码的信息别忘了在本站进行查找喔。


数据运维技术 » Ubuntu和QT如何使用访问Oracle数据库 (ubuntu qt访问oracle数据库)