java开发oracle JDBC驱动

    xiaoxiao2023-03-24  2

     1、JDBC OCI: oci是oracle call interface的缩写,此驱动类似于传统的ODBC 驱动。因为它需要Oracle Call Interface and Net8,所以它需要在运行使用此驱动的JAVA程序的机器上安装客户端软件,其实主要是用到orcale客户端里以dll方式提供的oci和服务器配置。   2、JDBC Thin: thin是for thin client的意思,这种驱动一般用在运行在WEB浏览器中的JAVA程序。它不是通过OCI or Net8,而是通过Java sockets进行通信,是纯java实现的驱动,因此不需要在使用JDBC Thin的客户端机器上安装orcale客户端软件,所以有很好的移植性,通常用在web开发中。   3、JDBC KPRB: 这种驱动由直接存储在数据库中的JAVA程序使用,如Java Stored Procedures 、triggers、Database JSP’s。因为是在服务器内部使用,他使用默认或当前的会话连接来访数据库,不需要用户名密码等,也不需要数据库url。

      在应用开发的时候,通常是用前面两种方式,下面是数据库url的写法:   jdbc:oracle:thin:@server ip: service   jdbc:oracle:oci:@service   看来oci的还更加简洁,ip可以省掉不写了,这是因为oci驱动通过客户端的native java methods来条用c library方式来访问数据库服务器,使用到了客户端的net manager里的数据库服务配置。   因为oci方式最终与数据库服务器通信交互是用的c library库,理论上性能优于thin方式,据说主要是体现在blob字段的存取上。   开发oracle经常用到的 pl sql dev使用的估计是oci方式,需要安装客户端,但也可以不安装,但是要抽出其中的oci相关的dll即jar包、注册环境变量、配置侦听文件等,无需安装oracle客户端,用plsql连接远程oracle 详细步见附注。   oracle在10g之后提供了精简客户端,安装的过程应该包括上面的那些工作。    代码示例:

    package src.test; import java.sql.*; public class dbOCI { public static void main1() throws SQLException { try { Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn = DriverManager.getConnection( "jdbc:oracle:oci:@oracle92", "scott", "tiger"); Statement stmt = conn.createStatement(); ResultSet rset = stmt.executeQuery("select * from dept"); while (rset.next()) System.out.println(rset.getString(1)); stmt.close(); conn.close(); } catch (ClassNotFoundException e) { e.printStackTrace(); } } } package src.test; import java.sql.*; public class dbThin { public static void Main2() { try { Class.forName("oracle.jdbc.driver.OracleDriver"); String url = "jdbc:oracle:thin:@192.168.0.100:1521:server9i"; Connection c = DriverManager.getConnection(url, "scott", "tiger"); Statement stmt = c.createStatement(); String sql = "select * from dept"; ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { System.out.println("dname: " + rs.getString("dname")); } stmt.close(); c.close(); } catch (Exception e) { e.printStackTrace(); } } } 附注: 无需安装oracle客户端,用plsql连接远程oracle 步骤 1、在安装ORACLE服务器的机器上搜索下列文件, oci.dll ocijdbc10.dll ociw32.dll orannzsbb10.dll oraocci10.dll oraociei10.dll sqlnet.ora tnsnames.ora classes12.jar ojdbc14.jar 放到一个文件夹,如 oraclient 2、配置tnsnames.ora,如果本机上没有安装oracle, 可以从安装了oracle的机上拷贝一个(tnsnames.ora文件在%ORACLE_HOME%/network/admin下)放在上面的目录D:/oraclient下。 oracledata = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.58)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = oracledata) ) )

    3、添加一个环境变量,名为TNS_ADMIN,值为tnsnames.ora文件所在路径(如:D:/oraclient,特别是重装后或其它操作,忘了TNS_ADMIN变量,plsql登陆就会报无法解析指定的连接标识符),这是为了能够找到上面说的tnsnames.ora。如果本机上安装了ORACLE,并且设置了ORACLE_HOME环境变量,那么会自动在%ORACLE_HOME%/network/admin/位置查找tnsnames.ora文件。

    4、设置ORACLE的语言,添加环境变量: “NLS_LANG = SIMPLIFIEDCHINESE_CHINA.ZHS16GBK”,(AMERICAN_AMERICA.US7ASCII 是ASCII编码类型,其它类型可自己到服务器看一下或网上查找一下)

    转载请注明原文地址: https://ju.6miu.com/read-1201121.html
    最新回复(0)