jdbc的数据库连接 折腾我一个晚上, 这篇博客写的很全,谢谢博主,转载下留作备份:

转载自:http://java-xp.iteye.com/blog/1639607

最近使用jdbc连接oracle时报错:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor The Connection descriptor used by the client was:
10.12.162.84:1521:xxxx

登陆oracle数据发现在network/admin/文件夹下的tnsnames.ora中配置的是:SERVICE_NAME =xxxx。经过查询发现,是jdbc中的连接串使用的不正确。Java JDBC Thin Driver 连接 Oracle有三种方法,如下:

格式一: Oracle JDBC Thin using a ServiceName:
jdbc:oracle:thin:@//<host>:<port>/<service_name>
Example: jdbc:oracle:thin:@//192.168.2.1:1521/XE
注意这里的格式,@后面有//, 这是与使用SID的主要区别。
这种格式是Oracle 推荐的格式,因为对于集群来说,每个节点的SID 是不一样的,但是SERVICE_NAME 确可以包含所有节点。

格式二: Oracle JDBC Thin using an SID:
jdbc:oracle:thin:@<host>:<port>:<SID>
Example: jdbc:oracle:thin:@192.168.2.1:1521:X01A
Note:
Support for SID is being phased out. Oracle recommends that users switch over to usingservice names.

格式三:Oracle JDBC Thin using a TNSName:
jdbc:oracle:thin:@<TNSName>
Example: jdbc:oracle:thin:@GL
Note:
Support for TNSNames was added in the driver release 10.2.0.1

linux下查询sid的方法:
在配置oracle环境变量的情况可以使用 echo $ORACLE_SID,如果没有可以使用ps -ef |grep oracle 来查询:
oracle    2548     1  0 Aug17 ?        00:00:00 ora_pmon_xxxx
后面的xxxx就是对应的sid。

在windows环境下,oracle是以后台服务的方式被管理的,所以看"控制面板->管理工具->服务 里面的名称:"OracleServiceORCL",则ORCL就是sid;

service_name 和sid的区别:
Service_name:该参数是由oracle8i引进的。在8i以前,使用SID来表示标识数据库的一个实例,但是在Oracle的并行环境中,一个数据库对应多个实例,这样就需要多个网络服务名,设置繁琐。为了方便并行环境中的设置,引进了Service_name参数,该参数对应一个数据库,而不是一个实例,而且该参数有许多其它的好处。该参数的缺省值为Db_name. Db_domain,即等于Global_name。一个数据库可以对应多个Service_name,以便实现更灵活的配置。该参数与SID没有直接关系,即不必Service name 必须与SID一样
sid是数据库实例的名字,每个实例各不相同。

转载于:https://blog.51cto.com/ccchencheng/1252397

jdbc 连接oracle 数据库格式相关推荐

  1. JDBC连接Oracle数据库测试

    JDBC连接Oracle数据库测试 package date20180727.dao; import java.sql.Connection; import java.sql.DriverManage ...

  2. jdbc连接oracle数据库

    jdbc连接Oracle数据库的步骤: 1.导入需要的jar包,比如ojdbc6.jar 2.加载驱动.Class.forName("oracle.jdbc.OracleDriver&quo ...

  3. Java案例:利用JDBC连接Oracle数据库

    Java案例:利用JDBC连接Oracle数据库 一.准备工作 1.启动SQL Developer,设置java.exe路径 2.在Oracle SQL Developer里,新建数据库连接 连接名: ...

  4. idea如何给oracle添加数据_intelij idea下使用java和JDBC连接oracle数据库及简单的SQL操作...

    intelij idea下使用java和JDBC连接oracle数据库及简单的SQL操作 发布时间:2018-07-04 10:09, 浏览次数:2532 , 标签: intelij idea jav ...

  5. jdbc连接oracle查询数据库,JDBC连接Oracle数据库,并操作数据库,查询表

    JDBC连接Oracle数据库 protected void doPost(HttpServletRequest request, HttpServletResponse response) thro ...

  6. Java编程 JDBC连接Oracle数据库

    Part1 JDBC JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Jav ...

  7. java启动监听器报错_JAVA通过JDBC连接Oracle数据库详解【转载】

    1.注册加载驱动 驱动名:DRIVER="oracle.jdbc.driver.OracleDriver"; Class.forName("驱动类名"); 2. ...

  8. 利用JDBC连接Oracle数据库

    JDBC是Sun公司制定的一个可以 用Java语言连接数据库的技术. 一.JDBC基础知识 JDBC(Java Data Base Connectivity,java数据库连接) 是一种用于执行SQL ...

  9. JDBC连接oracle数据库进行增,删,改,查

    1.配置相关maven环境 附上链接 2.建立实体类 这里我建立一个实体类映射数据库中的XWD_TEST表 public class ModelOfJDBC {private int id;priva ...

  10. 如何使用jdbc连接oracle数据库

    一.准备ojdbc驱动包 链接:https://pan.baidu.com/s/1JEni3roZ-0Jg7qRL2Zp3XQ  提取码:320i 二.加载驱动并创建连接 package com.qi ...

最新文章

  1. CSDN下载资源+全领域电子书+程序员提升课,领取这些不香吗?
  2. 清除tomcat的缓存
  3. 浅谈Socket编程
  4. asp.net关于kindeditor 上传图片出现服务器故障的解决办法
  5. js,jquery获取页面元素距离浏览器工作区顶端的距离
  6. Exchange 2003 升级 2010地址列表升级
  7. Smarty的入门使用
  8. tomcat websock html5,websocket实战(4) websocket版贪食蛇游戏(tomcat官方自带)
  9. 应用安全_WTS-WAF绕过
  10. Altium Designer 20的安装教程
  11. hsql导入mysql_在测试过程中使用HSQL数据库
  12. 基于ricequant线性回归量化交易
  13. 【知识地图】开发测试全栈 (未完待续)
  14. css内边距外边距和边框
  15. 瑞成科技加入openKylin,推动社区生态繁荣发展!
  16. Win11如何自动清理垃圾?Win11自动删除文件设置方法
  17. Meta-DETR: Image-Level Few-Shot Detection with Inter-Class Correlation Exploitation
  18. “凡尔赛文学”是奢侈品电商的“取款机”?
  19. CIE1931-XYZ表色系统
  20. LeetCode刷题-11

热门文章

  1. android selector
  2. CentOS 关闭暂不需要的系统服务
  3. Dynamic CRM 2013学习笔记(四)单据编号及插件批量注册工具
  4. Map.Entry的使用(转载)
  5. 转换FlashFxp站点和FtpRush站点的好工具
  6. mysql(一主从从)
  7. Linux内存使用消耗高
  8. iOS NSString的常用用法
  9. Cocos2d-x for Android iOS开发环境配置最佳实践
  10. sql server连接字符串