怎么实现用java远程访问oracle数据库?
Posted 牵只蜗牛去散步!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么实现用java远程访问oracle数据库?相关的知识,希望对你有一定的参考价值。
1、新建JAVA项目时在库中添加“%oracle_home%jdbc.lib.classes.zip”也可在Eclipse->项目->属性->Java构建路径->库添加“%oracle_home%jdbc.lib.classes.zip”;2、 import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Connection;
3、
public class my_jdbc
public static void main(String[] args) throws SQLException, ClassNotFoundException
String sql = "select * from emp";
Class.forName("oracle.jdbc.driver.OracleDriver"); //加载驱动程序
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());//实例化驱动程序类
String url = "jdbc:oracle:thin:@10.0.0.244:1521:orcl2 ";//驱动程序名:@主机名/IP:端口号:数据库实例名
String userName = "SCOTT";
String passWord = "tiger";
Connection conn = DriverManager.getConnection(url, userName, passWord);
Statement stm = conn.createStatement();
ResultSet rs = stm.executeQuery(sql);
while (rs.next())
String a=rs.getString(3);
System.out.print(a+"/t");
System.out.println( rs.getDate(5).toString());
4、
DriverManager 类是 JDBC 的管理层,作用于用户和驱动程序之间。它跟踪可用的驱动程序,并在数据库和相应驱动程序之间建立连接。另外,DriverManager 类也处理诸如驱动程序登录时间限制及登录和跟踪消息的显示等事务。
一般需要使用的唯一方法是 DriverManager.getConnection。建立与数据库的连接。JDBC 允许用户调用 DriverManager 的方法 getDriver、getDrivers 和 registerDriver 及 Driver 的方法 connect。
DriverManager 类包含一列 Driver 类,它们已通过调用方法 DriverManager.registerDriver 对自己进行注册。所有 Driver 类都必须包含有一个静态部分。用于创建该类的实例,然后在加载该实例时 DriverManager 类进行注册。这样,用户正常情况下将不会直接调用 DriverManager.registerDriver;而是在加载驱动程序时由驱动程序自动调用。
加载 Driver 类,然后自动在 DriverManager 中注册的方式有两种:
通过调用方法 Class.forName。这将显式地加载驱动程序类。由于这与外部设置无关,因此推荐使用这种加载驱动程序的方法。以下代码加载类 acme.db.Driver:Class.forName("acme.db.Driver");
如果将 acme.db.Driver 编写为加载时创建实例,并调用以该实例为参数的 DriverManager.registerDriver(),则它在 DriverManager 的驱动程序列表中,并可用于创建连接。
通过将驱动程序添加到 java.lang.System 的属性 jdbc.drivers 中。这是一个由 DriverManager 类加载的驱动程序类名的列表,由冒号分隔:初始化 DriverManager 类时,它搜索系统属性 jdbc.drivers,如果用户已输入了一个或多个驱动程序,则 DriverManager 类将试图加载它们。
对 DriverManager 方法的第一次调用将自动加载这些驱动程序类。
注意:加载驱动程序的第二种方法需要持久的预设环境。如果对这一点不能保证,则调用方法 Class.forName 显式地加载每个驱动程序就显得更为安全。这也是引入特定驱动程序的方法,因为一旦 DriverManager 类被初始化,它将不再检查 jdbc.drivers 属性列表。
在以上两种情况中,新加载的 Driver 类都要通过调用 DriverManager.registerDriver 类进行自我注册。如上所述,加载类时将自动执行这一过程。
由于安全方面的原因,JDBC 管理层将跟踪哪个类加载器提供哪个驱动程序。这样,当 DriverManager 类打开连接时,它仅使用本地文件系统或与发出连接请求的代码相同的类加载器提供的驱动程序。
加载 Driver 类并在 DriverManager 类中注册后,它们即可用来与数据库建立连接。当调用 DriverManager.getConnection 方法发出连接请求时,DriverManager 将检查每个驱动程序,查看它是否可以建立连接。
有时可能有多个 JDBC 驱动程序可以与给定的 URL 连接。例如,与给定远程数据库连接时,可以使用 JDBC-ODBC 桥驱动程序、JDBC 到通用网络协议驱动程序或数据库厂商提供的驱动程序。在这种情况下,测试驱动程序的顺序至关重要,因为 DriverManager 将使用它所找到的第一个可以成功连接到给定 URL 的驱动程序。
首先 DriverManager 试图按注册的顺序使用每个驱动程序(jdbc.drivers 中列出的驱动程序总是先注册)。它将跳过代码不可信任的驱动程序,除非加载它们的源与试图打开连接的代码的源相同。
它通过轮流在每个驱动程序上调用方法 Driver.connect,并向它们传递用户开始传递给方法 DriverManager.getConnection 的 URL 来对驱动程序进行测试,然后连接第一个认出该 URL 的驱动程序。
这种方法初看起来效率不高,但由于不可能同时加载数十个驱动程序,因此每次连接实际只需几个过程调用和字符串比较。
以下代码是通常情况下用驱动程序(例如 JDBC-ODBC 桥驱动程序)建立连接所需所有步骤的示例:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //加载驱动程序
String url = "jdbc:odbc:fred";
DriverManager.getConnection(url, "userID", "passwd");
5、如果使用的是ORACLE的客户端那么在第一步引用的库为客户端目录下的“jdbc/lib/classes.zip”就可以了。
对于JDBC的其它应用我会在以后的时间内继续。。。。
以上是关于怎么实现用java远程访问oracle数据库?的主要内容,如果未能解决你的问题,请参考以下文章
您好,您提问过的问题:plsql能远程连上oracle数据库,java程序连不上,是怎么解决的?
用Navicat for Oracle登录时显示错误:invalid username password logon denied 这是怎么回事??求解决