os: centos 7.6
db: oracle 19.3

jdbc 连接 oracle 有两种常见方式,thin 和 coi.
开发人员一般配置的都是 thin 方式,简单.

thin

thin 是 for thin client 的意思,是纯java实现的,通过Java sockets进行通信,属于4类驱动。
因此不需要在使用JDBC Thin的客户端机器上安装orcale客户端软件,所以有很好的移植性,通常用在web开发中。

JDBC Thin using an SID:

jdbc:oracle:thin:@192.168.56.100:1521:pdb1

JDBC Thin using a ServiceName:

jdbc:oracle:thin:@//192.168.56.100:1521/pdb1

JDBC Thin using a TNS

jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.100)(PORT=1521)))(CONNECT_DATA= (SERVER = DEDICATED)(SERVICE_NAME=pdb1)))

JDBC Thin using a TNSName
thin + tnsname 这个比较少见

jdbc:oracle:thin:@tns_pdb1

oci

oci是oracle call interface的缩写,是用C语言实现的,属于2类驱动。
因为它需要Oracle Call Interface and Net8,所以它需要在运行使用此驱动的JAVA程序的机器上安装客户端软件,其实主要是用到orcale客户端里以.dll方式或者.so提供的oci和服务器配置。
使用 coi ,最小环境为安装 Oracle Instant Client.
使用 oci 方式,一般是在 rac 的环境下,所以在 database server 端要创建 service ,并配置好 failover type.

JDBC Oci using an SID:

jdbc:oracle:oci:@192.168.56.100:1521:pdb1

JDBC Oci using a TNSName

jdbc:oracle:oci:@tns_pdb1

tnsname

不管是通过 thin 还是 oci 方式,使用 tnsname 就需要做一些额外设置
在运行java的用户下,或者全局设置
这里安装的是 Oracle Instant Client 19.3

$ vi /home/oracle/.bash_profileexport ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.3.0/instantclient_19_3export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME:$ORACLE_HOME/bin
export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export PATH=${PATH}:$ORACLE_BASE/common/oracle/binexport LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME:$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/libexport CLASSPATH=${CLASSPATH}:$ORACLE_HOME/JRE
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlibexport TEMP=/tmp
export TMP=/tmp
export TMPDIR=/tmp
$ vi $ORACLE_HOME/network/admin/tnsnames.oratns_pdb1=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.100)(PORT=1521)))(CONNECT_DATA= (SERVER = DEDICATED)(SERVICE_NAME=pdb1)))

参考:
https://www.oracle.com/database/technologies/instant-client/downloads.html

https://docs.oracle.com/en/database/oracle/oracle-database/19/jjdbc/JDBC-Thin-features.html#GUID-003FC8A9-9CD7-41C4-AD73-BE6F5D13D1DB
https://docs.oracle.com/en/database/oracle/oracle-database/19/jjdbc/JDBC-OCI-features.html#GUID-A8201BD0-BAED-4C54-B53B-C26C5F295B32

jdbc 的连接方式 thin, oci相关推荐

  1. 转:ORACLE的JDBC连接方式:OCI和THIN

    oracle的jdbc连接方式:oci和thin oci和thin是Oracle提供的两套Java访问Oracle数据库方式. thin是一种瘦客户端的连接方式,即采用这种连接方式不需要安装oracl ...

  2. orcle数据库代码连接方式(jdbc:oracle:thin:@192.168.3.98:1521:orcl)

    一. jdbc:oracle:thin:@192.168.3.98:1521:orcl jdbc:表示采用jdbc方式连接数据库 oracle:表示连接的是oracle数据库 thin:表示连接时采用 ...

  3. Java连接Oracle两种方式thin与oci区别

    Java连接Oracle两种方式thin与oci区别 前几天同事跑过来跟我说, 机房中的一台tomcat服务器跟oracle数据库机连接很慢,查看控制台中的hibernate日志, 基本上是一条sql ...

  4. oracle9i oci driver,Oracle连接 Oracle 的OCI Driver 和 Thin Driver的区别

    我是今天看到tomcat数据源的配置时,想起来这个问题,刚开始还不晓得thin是什么东西! database.url=jdbc:oracle:thin:angel/oracle@192.168.55. ...

  5. Jdbc连接mysql的五种连接方式

    一:五种连接方式 直接上码 package com.wyjedu.jdbc;import com.mysql.jdbc.Driver;import java.io.FileInputStream; i ...

  6. JDBC 与 JNDI 这两种连接方式 区别

    jdbc(Java Data Base Connectivity)是数据库中间代理商为了是java连接数据库而定的一个协议 或者说是方法,通过jdbc-odbc的方法进行数据库连接,是连接一次创建一次 ...

  7. 项目案例模板之jdbc两种连接方式

    项目案例模板之jdbc两种连接方式 第一种连接方式 JDBCUtils.java package jdbc;​import org.junit.jupiter.api.Test;​import jav ...

  8. JDBC二:连接方式

    JDBC连接的方式 引入 五种方式之间是渐进迭代关系,前4种连接方式有助于理解jdbc连接的实质,实际开发中采用最后一种方式 一.方式一 通过第三方API中的实现类进行数据库连接 @Testpubli ...

  9. Oracle 11g DRCP连接方式——基本原理

    学习Oracle是一个复杂.繁琐的过程.在浩如烟海的Oracle官方资料.新特性.MOS资料和各种Internal知识面前,我们总是觉得力不从心.不知所措.但是,这往往也就是我们不断坚持.积累和追寻的 ...

最新文章

  1. twofive(记忆搜索)
  2. Swift学习总结【持续更新】
  3. 信纳比(SINAD)介绍
  4. linux实战案例作业(1)
  5. 解决Warning: Ignoring InnerClasses attribute for an anonymous inner class
  6. php setcookie使用变量,PHP setcookie() 函数
  7. 望城2019年华为软件云项目_今天,华为、京东两大项目在长沙开工
  8. bug篇——mysql排序混乱问题
  9. 拓端tecdat:R语言KMEANS均值聚类和层次聚类:亚洲国家地区生活幸福质量异同可视化分析和选择最优聚类数
  10. CentOS 7.5 yum 安装 Git
  11. java中的map是什么_Java中Map的使用
  12. Python计算水仙花数
  13. html网页中获取vf数据到mysql_vfp教程之用FoxWeb在网上快速发布你的FOXPRO数据库
  14. eNSP教程 —— 物理机如何使用web登录到防火墙
  15. 【SEU程序设计课笔记】 Mooc - Chapter 6 - (EX) - 泰勒展开求sin(x)/计算PI的近似值
  16. linux -第一式(终端开启键盘背光)
  17. vue2源码解读笔记(一)
  18. [附源码]计算机毕业设计SpringBoot高血压分析平台
  19. 长安链ChainMaker的多链隔离设计
  20. 线程池的几个重要参数

热门文章

  1. EVPN Type1 per EVI
  2. 非球面镜头的特性和优点
  3. C指针:Educoder指针进阶-用指针实现数组循环移动
  4. 奔驰的STAR3电子电气架构2
  5. 运维人员经常用的软件
  6. 21考研初试备考指导
  7. Elasticsearch 实现分页的 3 种方式,还有谁不会??
  8. java计算机毕业设计基于安卓Android/微信小程序的智慧养老院管理系统
  9. 利用Python爬取全国250m精度的人口数据
  10. SecureCRT设置彩色显示