文章转自:http://blog.itpub.net/22664653/viewspace-1383092/

前言
  本文是一篇学习笔记,学习如何通过java jdbc /ojdbc 连接oracle的几种方式。
一 使用方法
方法一:使用service_name 连接oracle

jdbc:oracle:thin:@//<host>:<port>/<service_name>
例如: jdbc:oracle:thin:@//10.10.10.1:1521/TDB

注意这里的格式,@后面有//, 这是与使用SID的主要区别。
对于集群来说,每个节点的SID 是不一样的,但是SERVICE_NAME 确可以包含所有节点。
方法二: 使用SID 连接oracle

jdbc:oracle:thin:@<host>:<port>:<SID>
Example: jdbc:oracle:thin:@10.10.10.1:1521:testdb1 

注意 该方法已经不做推荐,oracle 官方推荐使用service_name
方法三:使用tnsname 连接oracle

jdbc:oracle:thin:@<TNSName>
Example: jdbc:oracle:thin:@TESTDB

二 源代码

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class testDB {
public static final String DBDRIVER = "oracle.jdbc.driver.OracleDriver";
# public static final String DBURL = "jdbc:oracle:thin:@127.0.0.1:1521/testdb1"; //sid 格式 testdb1是sid
# public static final String DBURL = "jdbc:oracle:thin:@//127.0.0.1:1521/TDB";   //servicename TDB是service_name
public static final String DBUSER = "test\";
public static final String DBPASSWORD = \"xxx\";

public static final String DBURL = \"jdbc:oracle:thin:@TESTDB\"; //tnsname 格式
public static void main(String[] args) throws Exception
 {
   Connection con = null;
   PreparedStatement ps = null;
   ResultSet rs = null;
  String strSQL = \"select count(*) from tsa_dim_deal\";
# System.setProperty(\"oracle.net.tns_admin\", \"/home/admin/oracle\");//使用tnsname 方法的时候 需要制定tnsname.ora所在的文件夹绝对路径
  Class.forName(DBDRIVER).newInstance();
  con = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);
  ps = con.prepareStatement(strSQL);
  rs = ps.executeQuery();
while(rs.next())
  {
   System.out.println(\"num:\"+rs.getString(1));
  }
  rs.close();
  ps.close();
  con.close();
 }
}

附录:

[qilong.yangql@rac1 oracle]$ more tnsnames.ora
testdb=
  (DESCRIPTION =
    (FAILOVER = ON)
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.1)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.2)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.3)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.4)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.5)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.6)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = tdb)
    )
  )

注意 本文里面 service_name tdb 和tnsname (testdb) 故意设置的不一样.

三  参考:
http://razorsql.com/docs/help_oracle.html

jdbc/ojdbc连oracle的三种方式(转)的更多相关文章

  1. java jdbc/ojdbc 链接oracle的三种方式

    方法一:使用service_name 连接oracle  jdbc:oracle:thin:@//:/<service_name> 例如: jdbc:oracle:thin:@//10.1 ...

  2. JDBC 创建连接对象的三种方式 、 properties文件的建立、编辑和信息获取

    创建连接对象的三种方式 //第一种方式 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/ ...

  3. JDBC 创建连接对象的三种方式 、 properties文件的建立、编辑和信息获取

    创建连接对象的三种方式 //第一种方式 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/ ...

  4. 【Oracle】三种方式查看SQL语句的执行计划

    查看执行计划的方式有三种: EXPLAIN PLAN .V$SQL_PLAN .SQL*PLUS AUTOTRACE 1.EXPLAIN PLAN: 显示执行相应语句时可以使用的理论计划 读取执行计划 ...

  5. jdbc 获取connection 对象的三种方式

    获取数据库连接方法一:驱动实现类 //创建mysql的Driver对象 Driver driver=new com.mysql.jdbc.Driver(); //jdbc url 定位一个数据库: S ...

  6. Oracle数据库三种备份方案

    Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP).热备份和冷备份.导出备件是一种逻辑备份,冷备份和热备份是物理备份. 一. 导出/导入(Export/Import) 利用 ...

  7. Oracle数据库三种标准的备份方法

    Oracle数据库的三种标准的备份方法: 1.导出/导入(EXP/IMP). 2.热备份. 3.冷备份. 注释:导出备件是一种逻辑备份,冷备份和热备份是物理备份. 一.导出/导入(Export/Imp ...

  8. jdbc连接oracle的三种方法

    jdbc连接oracle的三种方法 使用service_name,配置方式:jdbc:oracle:thin:@//<host>:<port>/<service_name ...

  9. JDBC的批处理操作三种方式 pstmt.addBatch()

    package lavasoft.jdbctest; import lavasoft.common.DBToolkit; import java.sql.Connection; import java ...

随机推荐

  1. CentOS上搭建Nginx + Mono 运行 asp.net

    安装步骤: 一.获取开源相关程序: 1.利用CentOS Linux系统自带的yum命令安装.升级所需的程序库: sudo -sLANG=Cyum -y install gcc gcc-c++ aut ...

  2. linux上课

    1. service --status-all 2. service sshd restart 3. service --status-all  | grep ssh 4. chkconfig --l ...

  3. MD5算法的C语言实现

    1 #include <stdio.h> #include <stdint.h> #include <stdlib.h> #include <string.h ...

  4. Google搜索的几个使用技巧——让你的搜索结果更准确

    对于软件开发人员来说,不知道的内容在网上搜索是再正常不过的了.今天同事在组内分享了几个谷歌搜索的使用技巧,在此自己总结一下,希望可以帮到更多人. 在此之前先要唠叨几句,什么时候用百度,什么时候用谷歌? ...

  5. [BZOJ 1260][CQOI2007]染色(DP)

    题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1260 分析: f[i][j]表示i~j刷成s[i]~s[j]这个样子需要的最小次数 则 ...

  6. JavaScript学习笔记-new Date() 与 Date() 的区别

    var today1 = Date() //返回一个字符串(string),没有getDate等日期对象方法,内容为当前时间 var today2 = new Date() //返回一日期对象,内容为 ...

  7. 网页设计:Meta标签详解

    很多人忽视了HTML标签META的强大功效,一个好的META标签设计可以大大提高你的个人网站被搜索到的可能性,有兴趣吗,谁我来重新认识一下META标签吧! META标签是HTML语言HEAD区的一个辅 ...

  8. poj-1384 Piggy-Bank

    poj-1384 Piggy-Bank 地址:http://poj.org/problem?id=1384 题意: 知道盒子里面的物体的总重量,得到每一种硬币的价格和重量,求最少钱构成盒子物体总重量的 ...

  9. 【Alpha版本】冲刺阶段——Day 6

    我说的都队 031402304 陈燊 031402342 许玲玲 031402337 胡心颖 03140241 王婷婷 031402203 陈齐民 031402209 黄伟炜 031402233 郑扬 ...

  10. Nginx之负载均衡服务器揭秘

    Nginx代理服务器, 一次性代理多台后端机器, 利用负载算法, 决定将当前请求传递给某台服务器执行. 有哪些后台服务器?例如微软的IIS,Apache,Nginx 负载算法是什么? 加权轮询. ng ...