一.  创建oracle的数据源

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

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

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

二.使用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. ....

然后就能连接成功。

exclips为什么j创建局java出错_用Eclipse建立jdbc_odbc连接oracle相关推荐

  1. IntelliJ IDEA for Mac 如何创建普通的Java项目_创建项目_新建项目

    文章目录 创建 Java 新项目的流程 普通 Java 项目结构 Java 项目结构特例讲解 创建 Java 新项目的流程 Create New Project Empty Project (1)选择 ...

  2. python连接oracle数据库_深入理解Python3.6连接Oracle数据库

    Python3.6连接Oracle数据库的方法详解 本文实例讲述了Python3.6连接Oracle数据库的方法.分享给大家供大家参考,具体如下: 下载cx_Oracle模块模块: https://p ...

  3. 我的世界服务器java出错_看懂 游戏《Minecraft》的崩溃报告 服务端/客户端

    前言 [WARNING] 本篇适用于Minecraft服务端/客户端报错的诊断分析,其他游戏除外,比如网易 [WARNING] 本篇适用于Minecraft服务端/客户端报错的诊断分析,其他游戏除外, ...

  4. 远行星号java 出错_游戏崩溃了,求救

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 这是mod 这是log at java.util.Formatter.checkText(Unknown Source) at java.util.For ...

  5. 远行星号java 出错_按照教程搞了一条新船,但是出错了,求大神看看怎么回事...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 11069 [Thread-5] ERROR com.fs.starfarer.combat.D - java.lang.IllegalArgumentE ...

  6. devexpress 创建窗口句柄时出错_实验一 线程的创建和撤销

    实验内容:编写和调试一个程序,实现Windows系统环境下通过API函数进行线程创建与撤销. 实验目的: (1) 熟悉Windows系统提供的线程创建和撤销系统调用: (2) 掌握Windows系统环 ...

  7. 远行星号java 出错_打了势力争霸之后就出错了

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 390231 [Thread-4] ERROR com.fs.starfarer.combat.CombatMain - java.lang.NoSuch ...

  8. 创建pdf java 字体_如何使用自定义字体从servlet使用iText XMLWorker创建PDF?

    使用iText / XMLWorker示例(大多数是 this one),我可以轻松编写能够使用我自己的额外字体从HTML代码创建PDF文件的简单应用程序,但是只要尝试在某些Web服务代码中使用我的东 ...

  9. apk 打包 java出错_一次不成功的apk重新打包经过

    我在 https://github.com/qpython-android/qpython3/releases/download/1.0.0/qpython3-app-release-1.0.0.ap ...

最新文章

  1. [NOI2010]能量采集
  2. vsftp上传文件出现553 Could not create file解决方法
  3. 关于pytorch中super的一点思考,结合代码
  4. 厉害了,关于String的10道经典面试题
  5. nhibernate事务锁表的问题
  6. User breakpoint called from code at 0x771064f4
  7. Python:print用法大全
  8. php---header函数的示例代码
  9. 如何使用python提高办公效率-提升Python程序运行效率的6个方法
  10. 单机塔防游戏推荐_十大塔防单机手游2019 简单好玩的单机塔防游戏推荐
  11. matlab霍夫曼吗仿真,霍夫曼编译码的Matlab代码实现
  12. Rasterio入门
  13. 红帽linux怎么截图,Linux上使用Ksnip截图
  14. 力扣周赛310场题解
  15. 内存控制器(以位宽为16的NOR FLASH举例)
  16. 基于 C# 和 js 开发的程序员升职记 remake 版
  17. 易灵思FPGA--Programming Mode
  18. 上海各行政区域地铁站分布数量
  19. 科技节图像后期处理二等奖作品---陪伴是最长情的告白
  20. 进行渗透测试的详细检测方法

热门文章

  1. 怎么发送电子邮件营销?关键在于这4点!
  2. Python调用EasyDLBML模型API实现缺陷检测
  3. IDM(功能强大的下载工具)IDM可以批量下载视频吗?
  4. 业务流程梳理与IT咨询
  5. Windows Server 2016 IIS10 安装配置图文详解
  6. 凸优化问题最优解存在且唯一的条件
  7. pinctrl子系统之二
  8. 茶香一刻 | 凤牌滇红,冬来暖茶香
  9. 店宝宝:实体产业转型电商成为必然选择
  10. 计算机软件专业毕业生数量,哪些毕业人数多得吓人的理科专业,你还敢选吗?...