随着信息化的发展,越来越多的企业开始采用数据库管理系统进行数据存储和处理。而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数据库
- QtSql编程RedHat linux系统下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数据库中文乱码的信息别忘了在本站进行查找喔。