netbeans 与oracle的链接.docx
《netbeans 与oracle的链接.docx》由会员分享,可在线阅读,更多相关《netbeans 与oracle的链接.docx(18页珍藏版)》请在冰豆网上搜索。
netbeans与oracle的链接
从NetBeansIDE7.0中连接到Oracle数据库
Admin
2011年12月16日
NetBeansIDE7.0引入了对Oracle数据库的内置支撑,以使您从IDE中轻松建树连接并开端应用该数据库。
在本教程中,我们应用OracleDatabase10gExpressEdition(OracleDatabaseXE)本地安装,这是一个可免费开辟、安排和分发的轻量数据库。
本文介绍了如何从NetBeansIDE中建树到OracleDatabaseXE本地安装的连接,如何应用IDE的内置SQL编辑器处理惩罚数据库数据以及如何启用OCI8PHP扩大以编写连接到Oracle数据库的PHP代码。
目次
∙
∙开端之前
∙
∙建树到Oracle数据库的连接
∙
o经由过程IDE处理惩罚Oracle数据库中的数据
o创建新的用户
o
o创建表
o
o应用表数据
o
∙
∙
∙应用NetBeansIDESQL编辑器的提示
∙
∙OCI8PHP扩大和实用于PHP的NetBeansIDE
∙
∙将OCIJDBC驱动法度与NetBeansIDE一路应用
∙
∙疑难解答
∙
∙另请拜见
∙
要进修本教程,您须要具备以下软件和资料。
软件或资料
请求的版本
NetBeansIDE
7.0JavaEE
JavaDevelopmentKit(JDK)
版本6或7
OracleDatabaseXE
10gExpressEdition
OracleJDBC驱动法度
ojdbc6.jar
开端之前
在开端进修本教程之前,请重视以下事项:
∙
∙本教程介绍了如何连接到本地体系上安装的OracleDatabaseXE实例,但这些步调也实用于连接到长途实例。
若是要连接到本地实例,您须要下载并安装OracleDatabaseXE。
安装过程很是简单直观,但若是您碰到题目,请参阅实用于您的平台的OracleDatabaseXE安装指南。
∙
o共有两种类型的OracleJDBC驱动法度:
OCI和JDBCThin。
oOracle的JDBCThin驱动法度基于Java,而与平台无关。
该自力驱动法度不请求其他Oracle库也存在,并容许直接连接到Oracle数据库。
本教程应用该驱动法度申明如何连接到Oracle数据库。
在开端进修本教程之前,您须要下载ojdbc6.jar文件并将其保存到您的体系上。
o
oOracle的OCI驱动法度应用Oracle的本机客户端库与数据库进行通信。
这些库是作为OracleInstantClient的一项目组获取的。
固然大多半景象下应用Thin驱动法度就足够了,但您也可能须要遵守将OCIJDBC驱动法度与NetBeansIDE一路应用中的步调应用OCI驱动法度。
应用OCI驱动法度的一个很好例子是,从PHP应用法度中应用OracleInstantClient库接见长途Oracle数据库。
有关如何启用OCI8PHP扩大的信息,请拜见本教程中的OCI8PHP扩大和实用于PHP的NetBeansIDE项目组。
o
∙
∙
建树到Oracle数据库的连接
在本操练中,将测试并创建到该数据库的连接。
1
确保OracleDatabaseXE正在运行。
例如,若是应用的是Windows平台,则会在体系启动时主动启动Oracle数据库办事。
2
3
4在“办事”窗口中,右键单击“数据库”节点,然后选择“新建连接”。
5
6在“新建连接”领导中,在“驱动法度”下拉列表中选择"OracleThin"。
7
8单击“添加”并查找以前下载的ojdbc6.jar文件。
单击“下一步”。
9
在领导的“定制连接”面板中,输入以下值,然后单击“下一步”。
名称
值
驱动法度名称
OracleThin(带有办事ID(SID))
主机
localhost或127.0.0.1。
重视:
对于长途连接,请供给安装该数据库的策画机的IP地址或可解析主机名。
端口
1521(缺省值)
办事ID(SID)
XE(OracleDatabaseXE的缺省SID)。
重视:
若是要连接到长途数据库,请请求数据库经管员为您供给数据库SID。
用户名
请输入用户名。
就本教程而言,请输入system(缺省数据库经管员帐户)和安装数据库时代应用的口令。
Password
输入选定用户名的口令。
10
11
单击“测试连接”以确认IDE可否连接到数据库。
单击“下一步”。
若是测验测验成功,则会在领导中显示“连接成功”消息。
12
13
14在“选择架构”下拉列表中选择"HR"。
单击“完成”。
15
将在“办事”窗口的“数据库”节点下面显示新连接。
您可以展开该连接,并开端浏览数据库对象的布局。
更改连接节点的显示名称:
从节点的弹出式菜单中选择“属性”,然后单击“显示名称”属性的省略号按钮。
输入OracleDB作为显示名称,然后单击“断定”。
重视:
固然上方的步调介绍的是连接到本地数据库实例的景象,但连接到长途数据库的步调是雷同的。
独一的差别是,输入安装Oracle数据库的长途策画机的IP地址或主机名,而不是将localhost指定为主机名。
处理惩罚Oracle数据库中的数据
与数据库进行交互的一种常见办法是,在SQL编辑器中运行SQL号令或应用数据库经管界面。
例如,OracleDatabaseXE具有基于浏览器的界面,可经由过程该界面经管数据库,经管数据库对象以及处理惩罚数据。
固然您可以经由过程Oracle数据库经管界面履行大多半与数据库有关的任务,但在本教程中,我们介绍如何应用NetBeansIDE中的SQL编辑器履行此中的一些任务。
以下操练介绍了如何创建新用户,快速从头创建表以及复制表数据。
创建用户
让我们创建一个新数据库用户帐户以处理惩罚数据库中的表和数据。
要创建新的用户,您必须应用数据库经管员帐户登录,在本示例中,我们应用在安装数据库时代创建的缺省system帐户。
16
17在“办事”窗口中,右键单击OracleDB连接节点,然后选择“履行号令”。
将打开NetBeansIDE的SQL编辑器,您可以在此中输入将发送到数据库的SQL号令。
18
要创建新的用户,请在“SQL编辑器”窗口中输入以下号令,然后单击对象栏上的“运行SQL”按钮。
createuserjim
identifiedbymypassword
defaulttablespaceusers
temporarytablespacetemp
quotaunlimitedonusers;
该号令创建新用户jim,口令为mypassword。
缺省表空间为users,并分派了不受限制的空间。
19
20
下一步是为jim用户帐户授予在数据库中履行操纵的权限。
我们须要容许该用户连接到数据库,在用户缺省表空间中创建和批改表以及接见样例hr数据库中的Employees表。
在实际生活生计中,数据库经管员创建定制角色,并微调每个角色的权限。
但就本教程而言,我们可以应用预定义的角色,例如,CONNECT。
有关角色和权限的具体信息,请拜见Oracle数据库安然指南。
grantconnecttojim;
grantcreatetabletojim;
grantonhr.departmentstojim;
21
22
Oracle数据库中的表空间
表空间是任何Oracle数据库的逻辑数据库存储单位。
实际上,数据库的所稀有据都存储在表空间中。
您可以在分派的表空间中创建表。
若是未明白为用户分派缺省表空间,则缺省应用体系表空间(最好避免呈现这种景象)。
有关表空间概念的具体信息,请拜见Oracle常见题目解答:
表空间。
创建表
可以应用几种办法经由过程NetBeansIDE在数据库中创建表。
例如,您可以运行SQL文件(右键单击文件并选择“运行文件”),履行SQL号令(右键单击连接节点并选择“履行号令”)或应用“创建表”对话框(右键单击“表”节点并选择“创建表”)。
在本操练中,将应用一个表的布局从头创建另一个表。
在本示例中,您欲望用户jim经由过程hr数据库从头创建Departments表,以便在其架构中创建该表的副本。
在创建该表之前,您须要与办事器断开连接,然后以用户jim身份登录。
23
24在“办事”窗口中右键单击OracleDB连接节点,然后选择“断开连接”。
25
26右键单击OracleDB连接节点,选择“连接”,然后以jim身份登录。
27
展开HR架构下面的“表”节点,然后确认用户jim只能接见Departments表。
在创建用户jim后,选择权限仅限于Departments表。
28
29
30右键单击Departments表节点,然后选择“抓取布局”。
将.grab文件保存到磁盘上。
31
32展开JIM架构,右键单击“表”节点,然后选择“从头创建表”。
指向所创建的.grab文件。
33
34查看用于创建表的SQL脚本。
单击“断定”。
在单击“断定”后,将创建新的DEPARTMENTS表,并在JIM架构节点下面显示该表。
若是右键单击表节点并选择“查看数据”,则会看到该表是空的。
35
若是要将原始Departments表中的数据复制到新表,您可以在表编辑器中手动输入数据,也可以针对新表运行SQL脚本以填充该表。
要手动输入数据,请履行以下步调。
36
37右键单击JIM架构下面的DEPARTMENTS表,然后选择“查看数据”。
38
39单击“查看数据”对象栏上的“插入记录”图标以打开“插入记录”窗口。
40
在字段中键入以输入数据。
单击“断定”。
例如,可以输入从原始DEPARTMENTS表中提取的以下值。
列
值
DEPARTMENT_ID
10
DEPARTMENT_NAME
Administration
MANAGER_ID
200
LOCATION_ID
1700
41
42
要应用SQL脚本填充表,请履行以下步调。
43
44右键单击JIM架构下面的DEPARTMENTS表,然后选择“履行号令”。
45
在“SQL号令”标签中输入脚本。
单击对象栏中的“运行”按钮。
以下脚本应用原始表中的数据填充新表的第一行。
INSERTINTOJIM.DEPARTMENTS(DEPARTMENT_ID,DEPARTMENT_NAME,MANAGER_ID,LOCATION_ID)VALUES(10,""Administration"",200,1700);
46
47
可经由过程履行以下步调,获取应用原始表填充新表的SQL脚本。
48
49右键单击HR架构下面的DEPARTMENTS表,然后选择“查看数据”。
50
在“查看数据”窗口中选择所有行,在该表中单击鼠标右键,然后从弹出式菜单中选择“显示INSERT的SQL脚本”以打开包含脚本的“显示SQL”对话框。
然后,您可以复制该脚本(并按照须要进行批改)以在您的表中插入数据。
51
52
有关应用SQL编辑器的具体信息,请拜见提示。
处理惩罚表数据
要处理惩罚表数据,您可以应用NetBeansIDE中的SQL编辑器。
经由过程运行SQL查询,您可以添加、批改和删除数据库布局中保存的数据。
起首,在jim架构中创建第二个名为Locations的表(仍然应用jim的用户帐户登录)。
这一次,我们只须要在IDE中运行现成的SQL文件即可:
53
54下载locations.sql文件并将其保存到策画机上的USER_HOME目次中。
55
打开IDE的“收藏夹”窗口,然后找到locations.sql文件。
要打开“收藏夹”窗口,请在主菜单中单击“窗口”>“收藏夹”(按Ctrl-3组合键)。
缺省景象下,将在“收藏夹”窗口中列出USER_HOME目次。
56
57
右键单击locations.sql文件,然后选择“运行文件”。
重视:
若是在IDE中注册了多个数据库连接,IDE可能会提示您选择正确的连接。
58
59
60在“办事”窗口中,右键单击“表”节点,然后在弹出式菜单中选择“刷新”。
将显示JIM架构中的表列表(右键单击菜单中的“刷新”)。
您可以看到在JIM架构中添加了包含数据的Locations表。
61
62右键单击Locations表节点,然后选择“查看数据”以查看表内容。
您将看到Locations表内容。
您可以直接在此查看窗口中插入新记录和批改现稀有据。
63
接下来,我们运行一个查询以显示以下两个表中的信息:
Departments和Locations。
在本示例中,我们应用简单的“天然归并”,因为两个表具有雷同的"location_id"列,此中保存了雷同数据类型的值。
这种归并仅选择在匹配location_id列中具有相等值的行。
打开“SQL号令”窗口(右键单击JIM架构下面的“表”节点,然后选择“履行号令”),输入以下SQL语句,然后单击“运行SQL”图标。
SELECTDEPARTMENT_NAME,MANAGER_ID,LOCATION_ID,STREET_ADDRESS,POSTAL_CODE,CITY,STATE_PROVINCE
FROMdepartmentsNATURALJOINlocations
ORDERbyDEPARTMENT_NAME;
该SQL查询返回Departments表中的location_id值与Locations表中的匹配列值相等的行,并按Department名称对成果进行排序。
请重视,与单个表的默示情势不合,您无法在此查询成果中直接插入新记录。
您可以将SQL归并查询保存为视图(右键单击“视图”节点,然后选择“创建视图”),并在今后须要时便利地运行该视图。
为此,应为数据库用户授予我们的样例用户所没有的“创建视图”权限。
您可以应用system帐户登录,为jim授予“创建视图”权限(应用以下SQL语句:
"grantcreateviewtojim;"),然后测验测验创建您本身的视图。
64
65
应用NetBeansIDESQL编辑器的提示
若是进修了本教程前面的内容,则您已应用了NetBeansIDESQL编辑器功能。
我们在此处列出了几个可能对您有效的其他NetBeansIDESQL编辑器功能。
66
o数据库表的GUI视图。
在“办事”窗口中右键单击表节点并选择“查看数据”时,IDE将显示该表的可视默示情势及其数据(如上图所示)。
您还可以在该视图中直接添加、批改和删除表数据。
o要添加记录,请单击“插入记录”
图标,然后在打开的“插入记录”窗口中插入新数据。
单击“显示SQL”按钮以查看该操纵的SQL代码。
将应用新记录主动更新该表。
o
o要批改记录,请在表的GUI视图中的任何单位格内直接双击,然后键入新值。
在提交更改之前,将应用绿色显示批改的文本。
要提交更改,请单击“提交更改”
图标。
要作废更改,请单击“作废编辑”
图标。
o
o要删除行,请将其选中,然后单击“删除选定的记录”
图标。
o
67
68
69保存先前的标签。
可以单击SQL编辑器对象栏上的“保存先前的标签”
图标,将包含以前查询成果的窗口对峙打开。
若是要斗劲几个查询的成果,这可能是很是有效的。
70
71SQL汗青记录(Ctrl-Alt-Shift-H)。
可以应用SQL编辑器对象栏上的“SQL汗青记录”
图标,查看为每个数据库连接运行的所有SQL语句。
从下拉列表中选择该连接,查找所需的SQL语句,然后单击“插入”以将该语句放在“SQL号令”窗口中。
72
73连接列表。
若是具有几个数据库连接,并须要在SQL编辑器中快速切换这几个连接,请应用“连接”下拉列表。
74
75运行SQL语句。
要运行“SQL号令”窗口中当前包含的全部语句,请单击“运行SQL”
图标。
若是要仅运行SQL语句的一项目组,请在“SQL号令”窗口中将其选中,右键单击所选内容,然后选择“运行选择”。
在这种景象下,仅履行所选的项目组。
76
OCI8PHP扩大和实用于PHP的NetBeansIDE
您可以应用OCI8PHP扩大和实用于PHP的NetBeansIDE编写PHP代码,以便与Oracle数据库进行通信。
要应用实用于PHP的NetBeansIDE和Oracle数据库,请履行以下操纵:
77
78遵守PHP进修资料的“设备PHP开辟景象”项目组中所述,设置PHP景象。
请重视,NetBeansIDE仅支撑PHP5.2或5.3。
79
80在编辑器中打开php.ini文件。
确保将extension_dir属性设置为PHP扩大目次。
该目次凡是为PHP_HOME/ext。
例如,在将PHP5.2.9安装到C:
根目次时,extension_dir设置应当为extension_dir="C:
\php-5.2.9\ext"。
81
查找extension=php_oci8_11g.dll(对于Oracle11g)或extension=php_oci8.dll(对于Oracle10.2或XE)行并作废注释。
每次只能启用此中的一个扩大。
首要申明:
若是php.ini中没有这些行,请在extensions文件夹中查找OCI8扩大文件。
若是extensions文件夹中没有OCI8扩大文件,请拜见为Linux和Windows安装PHP和OracleInstantClient以懂得下载和安装OCI8的信息。
82
83
84从头启动Apache。
(Windows用户应从头启动策画机。
)
85
86运行phpinfo()。
若是成功启用了OCI8,则会在phpinfo()输出中显示OCI8项目组。
87
有关启用OCI8的具体信息(尤其是将OCI8与长途OracleDB办事器一路应用),请拜见为Linux和Windows安装PHP和OracleInstantClient。
若是启用了OCI8,实用于PHP的NetBeansIDE将接见该扩大以完成代码和进行调试。
将OCIJDBC驱动法度与NetBeansIDE一路应用
OCI驱动法度包是在与JDBCThin驱动法度(ojdbc6.jar)雷同的JAR文件中供给的。
选择应用哪个驱动法度取决于以下接口:
oracle.jdbc.OracleDriver用于Thin驱动法度;oracle.jdbc.driver.OracleDriver用于OCI驱动法度。
要应用OCI驱动法度,您还必须安装OracleDatabaseInstantClient,因为它包含OCI驱动法度与数据库进行通信所需的所有库。
从NetBeansIDE中应用OracleOCI驱动法度连接到Oracle数据库:
88
89下载实用于您的平台的根蒂根基OracleDatabaseInstantClient软件包。
遵守此页上的安装申明进行操纵。
90
91在IDE的“办事”窗口中,右键单击“数据库”节点,然后选择“新建连接”。
92
93在“查找驱动法度”步调中,选择"OracleOCI",然后单击“添加”并指定ojdbc6.jar文件。
94
95在“定制连接”对话框中,供给以下连接具体信息:
IP地址、端口、SID、用户名和口令。
请重视OCI和Thin驱动法度的JDBCURL的差别。
96
疑难解答
下面的疑难解答提示仅介绍了我们碰到的几种异常。
若是此处没有解答您的题目,请自行进行搜刮或应用“请将您的定见和建议发送给我们”链接供给扶植性反馈。
∙
将会看到类似下面的错误:
Shuttingdownv3duetostartupexception:
Nofreeportwithinrange:
>>8080=com.sun.enterprise.v3.services.impl.monitor.MonitorableSelectorHandler@7dedad
呈现这种错误的原因是,GlassFish应用办事器和Oracle数据库均应用端口8080。
若是要同时应用这两个应用法度,您须要更改此中的一个应用法度的缺省端口。
要重置Oracle数据库的缺省端口,您可以应用以下号令:
CONNECTSYSTEM/password
EXECDBMS_XDB.SETHTTPPORT();
∙
∙
呈现以下错误:
Listenerrefusedtheconnectionwiththefollowingerror:
ORA-12505,TNS:
listenerdoesnotcurrentlyknowofSIDgiveninconnectdescriptor.
∙
若是侦听法度无法辨认连接描述符供给的数据库实例的办事ID(SID),则会呈现这种错误。
呈现该异常有几个原因。
例如,若是未启动Oracle数据,则可能会呈现该异常(最简单的景象)。
SID不正确或侦听法度无法辨认SID。
若是应用缺省SID(例如,OracleDatabaseExpressEdition的缺省SID为XE),则不太可能会呈现该题目。
SID包含在tnsnames.ora文件的CONNECTDATA项目组中(在Windows策画机上,该文件位于%ORACLE_HOME%\network\admin\tnsnames.ora中)。
∙
呈现以下错误:
ORA-12705:
CannotaccessNLSdatafilesorinvalidenvironmentspecified.
∙