用Eclipse建立jdbc_odbc连接oracle

一.  创建oracle的数据源

我的电脑 --> 控制面板 --> 管理工具 --> 数据源(ODBC)--> 用户DSN,添加 ---> 找到oracle的驱动,点击完成 --> Data source Name: 你的数据源名字,(我的是testsp)

               -->  TNS service Name: 你的oracle数据库实例,(我的是ORCL)

-->点击Test connection(用于测试是否建立成功)-->完成。

102051_h0iv_3721483.png

 

102300_G3mz_3721483.png

102402_z2BU_3721483.png

 

 

二.使用odbc连接oracle

 首先,打开Eclipse,建一个java项目Testmyoracle,在项目下建一个包com.sp。

package com.sp;  
  
import java.sql.*;  
  
  
/** 
 * 使用odbc连接oracle 
 * @author HJ 
 * 
 */  
public class TestOracle {  
      
    public static void main(String[] args) {  
          
        try {  
            //1.加载驱动  
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");  
            //2.得到连接  
            Connection conn = DriverManager.getConnection("jdbc:odbc:Testsp", "scott", "hjhj");  
            //3.从下面开始和 sql server 一模一样  
            Statement statement = conn.createStatement();  
              
            ResultSet resultSet = statement.executeQuery("select * from emp");  
              
            while(resultSet.next()){  
                  
                //用户名  
                System.out.println("用户名:" + resultSet.getString(2));  
            }  
              
            resultSet.close();  
            statement.close();  
            conn.close();  
              
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  
}

注:①Class.forName()方法,里面的参数是固定的。

Connection conn = DriverManager.getConnection("jdbc:odbc:Testsp", "scott", "hjhj");

第一个参数:jdbc:odbc:xxx,其中的xxx是oracle的数据源

第二个参数:scott是oracle的scott表

第三个参数:表的口令(即密码)

三.使用jdbc连接oracle

package com.sp;


import java.sql.*;


/**
 * 使用jdbc连接oracle
 * @author HJ
 */
public class TestOracle2 {
	
	public static void main(String[] args) {
		
		try {
			//1.加载驱动
			Class.forName("oracle.jdbc.driver.OracleDriver");
			
			//2.得到连接
			Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott", "hjhj");
			System.out.println("加载数据库驱动成功!");
			
			//3.从下面开始和 sql server 一模一样
			Statement statement = conn.createStatement();
			
			ResultSet resultSet = statement.executeQuery("select * from emp");
			
			while(resultSet.next()){
				//用户名
				System.out.println("用户名:" + resultSet.getString(2));
			}
			
			resultSet.close();
			statement.close();
			conn.close();
			
		} catch (Exception e) {
			System.out.println("加载数据库驱动失败!");
		}
	}
}

如上两运行成功,会在控制台显示scott的员工名字。

但是,也可能会运行出错,抛异常。

java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at com.sp.Testoracle.main(Testoracle.java:16)

这是因为我们没有导入oracle的jdbc包,现在开始导入jdbc包。

在项目名称上右击--->properties --> Java Build Path ---> Libraries --->Add Exterban JARS

然后选择oracle的jdbc目录,选择D:\app\Administrator\product\11.2.0\dbhome_2\oui\jlib下的classes12.jar-------或-------D:\app\Administrator\product\11.2.0\dbhome_2\owb\wf\lib下的 ojdbc14.jar,点击ok。

Oracle驱动classes12.jar 与ojdbc14.jar的区别

简单的说,如果使用jdk1.2和jdk1.3就使用classes12.jar;如果使用的jdk1.4和jdk1.5的,就选用ojdbc14.jar。更加详细的Oracle官方有说明。

    以下是Oracle JDBC官方文档的说法:

    也就是随便翻译一下就理解了。

    JDBC Thin for All Platforms

    classes12.jar (1,600,090 bytes) - for use with JDK 1.2 and JDK 1.3

    在低级JDK版本1.2与1.3中使用的驱动,虽然实际上在1.4,1.5中使用大部分情况也是OK的

    classes12_g.jar (2,044,594 bytes) - same as classes12.jar, except that classes were compiled with "javac -g" and contain some tracing information.

    添加了编译调试信息的classes12.jar

    classes12dms.jar (1,607,745 bytes) - same as classes12.jar, except that it contains additional code`to support Oracle Dynamic Monitoring Service.

    添加了支持Oracle动态检测服务的classes12.jar

    classes12dms_g.jar (2,052,968 bytes) - same as classes12dms.jar except that classes were compiled with "javac -g" and contain some tracing information.

    添加了支持Oracle动态检测服务与编译调试信息的classes12.jar

    ojdbc14.jar (1,545,954 bytes) - classes for use with JDK 1.4 and 1.5

    在高级JDK版本1.4与1.5中使用的驱动

    下面三个同classes12.jar的情况

    ojdbc14_g.jar (1,938,906 bytes) - same as ojdbc14.jar, except that classes were compiled with "javac -g" and contain some tracing information.

    ojdbc14dms.jar (1,553,561 bytes) - same as ojdbc14.jar, except that it contains additional code`to support Oracle Dynamic Monitoring Service.

    ojdbc14dms_g.jar (1,947,136 bytes) - same as ojdbc14dms.jar, except that classes were compiled with "javac -g" and contain some tracing information.

    orai18n.jar (1,645,114 bytes) - NLS classes for use with JDK 1.2, 1.3, 1.4, and 1.5. This jar file replaces the old nls_charset jar/zip files.

    ons.jar (48,492 bytes) - for use by the pure Java client-side Oracle Notification Services (ONS) deamon.

    demo.tar (604,160 bytes) or demo.zip (529,267 bytes) - contains sample JDBC programs. ....

然后就能连接成功。

转载于:https://my.oschina.net/u/3721483/blog/1560782

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值