首页 > 数据库 >Oracle JDBC 连接的几种方式

Oracle JDBC 连接的几种方式

时间:2023-01-05 10:44:24浏览次数:43  
标签:JDBC 几种 oracle jdbc thin Oracle 格式 连接 1521

Oracle JDBC 连接的几种方式

jdbc连接oracle rac数据库的写法:
1、方法之一
datasource.jdbcUrl=jdbc:oracle:thin:@//192.168.1.43:1521/orcl
注意是=号后面的内容。其中orcl是rac 数据库的service_name,
192.168.1.43是rac 的scan-ip地址。如果scan-ip的别名好用,就用别名。
此时要注意你的数据库账号/密码是可用的(别被锁了不知道)。

2、方法之二

datasource.jdbcUrl=jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.1.43)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl)))

注意@后面的是参考tnsnames.ora的写法

3、方法之三

datasource.jdbcUrl=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.43)(PORT=1521))(FAILOVER=on)(LOAD_BALANCE=off))(CONNECT_DATA= (SERVICE_NAME=orcl)))

-----------------------------------------------------------------

JDBC连接数据库的三种方式:
格式一:jdbc:oracle:thin:@//<host>:<port>/<service_name>
格式二:jdbc:oracle:thin:@<host>:<port>:<SID>
格式三:jdbc:oracle:thin:@<TNSName>

格式一是通过 SERVICE_NAME 连接Oracle数据库,适合于单实例和RAC

格式二是通过实例名SID连接数据库,RAC环境下实例名不唯一,不能充分利用数据库资源

格式三为通过本地配置的TNSNAME,支持RAC

-----------------------------------------------------------------

使用jdbc连接oracle时url有三种格式

格式一: Oracle JDBC Thin using an SID

url = "jdbc:oracle:thin:@ip:port:sid"
Example: jdbc:oracle:thin:@localhost:1521:orcl
这种格式是最简单也是用得最多的
你的oracle的sid可以通过一下指令获得:
sqlplus / as sysdba
select value from v$parameter where name=‘instance_name’;

格式二: Oracle JDBC Thin using a ServiceName

url = "jdbc:oracle:thin:@ip:port/servicename"
Example:jdbc:oracle:thin:@localhost:1521/orcl.city.com


注意这里的格式,port后面:换成了/,这种格式是Oracle 推荐的格式,因为对于集群来说,每个节点的SID 是不一样的,但是SERVICE_NAME 确可以包含所有节点。
你的oracle的service_name可以通过以下方式获得:
sqlplus / as sysdba
select value from v$parameter where name=‘service_names’;

格式三:Oracle JDBC Thin using a TNSName

jdbc:oracle:thin:@TNSName
Example: jdbc:oracle:thin:@TNS_ALIAS_NAME

jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL= TCP)(HOST=hostA)(PORT= 1522))(ADDRESS=(PROTOCOL=TCP)(HOST=your host)(PORT=1521)))(SOURCE_ROUTE=yes)(CONNECT_DATA=(SERVICE_NAME=your service_name)))

例如:

连接一个地址:

jdbc:oracle:thin:@(description=(address_list= (address=(host=192.168.60.132) (protocol=tcp)(port=1521)))(connect_data=(service_name= oratest)))

连接两个地址:

jdbc:oracle:thin:@(description=(address_list= (address=(host=192.168.60.132) (protocol=tcp)(port=1521))(address=(host=192.168.60.144)(protocol=tcp) (port=1521)) (load_balance=yes)(failover=yes))(connect_data=(service_name= oratest)))

注意:oracle做了负载均衡,不能直接通过ip去连接,需要用listener.ora的连接配置才能连接。

所以当连接oracle rac的虚拟IP时,因为要连接多个(连接多个oracle rac的VIP ip才会有HA的效果),所以格式1就无法满足条件,只能通过格式3来实现连接。

 

参考资料

https://blog.csdn.net/langliu/article/details/80847213

https://blog.csdn.net/wjzholmes/article/details/114870854

https://blog.csdn.net/liangpingguo/article/details/119726041

 

标签:JDBC,几种,oracle,jdbc,thin,Oracle,格式,连接,1521
From: https://www.cnblogs.com/pugang/p/17026878.html

相关文章

  • Oracle的start with connect by prior
    oracle的startwithconnectbyprior是根据条件递归查询"树",分为四种使用情况:第一种:查询结果自己所有的后代节点(包括自己)startwith子节点ID='...'connectbyprior......
  • [Oracle19C 数据库管理] 启动和停止Oracle数据库
    数据库启动的三个阶段startupnomount数据库根据初始化文件启动实例,分配内存给系统全局区SGA,并启动所有的后台进程。打开alertlog和tracefile。这个阶段实例会启动......
  • 5.Oracle的优化器
    1.oracle的优化器优化器(optimizer)是oracle数据库内置的一个核心子系统。优化器的目的是按照一定的判断原则来得到它认为的目标SQL在当前的情形下的最高效的执行路径,也......
  • Oracle存储过程详解(引用)+补充(转) dbms_output包 good
    执行存储过程时,execute和call的区别 EXECisasqlpluscommandthatputitsargumentasananonymouspl/sqlblock:'EXECxxx'istransformedto'BEGINxxx;END;'......
  • LeoZhangJing [Oracle19C 数据库管理] CREATE TABLE创建数据库
    使用CREATEDATABASE创建数据库CDBDEV,ContainerDatabase。在oracle用户下创建脚本[oracle@ol8-19~]$viCrCDBDEV.sql输入以下内容:CREATEDATABASEcdbdevUSERsy......
  • Oracle_4_分区、分区索引
    数据切分:1、垂直:不同的表存放在不同的地方。2、水平:按照规则将同一个表中的数据分开存放。 一、range分区(范围分区)创建表的时候,可以按照规则把一个......
  • informatica 861 迁移domain和资料库(oracle迁oracle)
    1:备份资料库  登录informatica控制台,选择资料库PC64-->Actions-->backupcontents,填写用户、密码、文件名称、备份说明2:备份服务器文件  安全起见整体备份......
  • oracle数据库配串指南(笔记)
    【1】PLSQL 的配置里先找到配置在那个目录中【2】 根据上面的目录找到 tnsnames.ora,把数据库串添加至文件后面中。【3】关闭重新进入,在database 中能看到该配置后,......
  • 在 Oracle中清除过多非活动的会话
    概述本文讨论如何在oracle中清理非活动的会话解决方案1、检查数据库中存在的非活动会话--Checkinactiveandactivesessioncountselectstatus,count(1)fromv......
  • 使用原生JDBC查询/Statement查询 结果集ResultSet转List<Bean>工具类 & 对转换结果L
    网上的工具类也不是都不能用,只是我只找到这个可以用。记一次转载,转换工具类,原文链接:https://www.iteye.com/blog/ghl116-1155456 转换为List<Bean>后,对其进行stream流......