JDBC纯驱动方式连接Oracle

1 下载Oracle提供的驱动程序包

下载地址:

http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html

下载哪个版本,跟你使用的JDK版本有关,比如使用JDK1.5,则下载ojdbc5.jar。若使用JDK1.6,则下载ojdbc6.jar。因为没有ojdbc7.jar或ojdbc8.jar,所以若使用JDK1.7或JDK1.8,也是下载ojdbc6.jar。

如果已经安装了Oracle服务器端或客户端,则无需再下载驱动程序包。Oracle服务器的JDBC驱动程序包目录位于$ORACLE_HOME\jdbc\lib下。

比如,笔者在D:\oracle目录下安装了Oracle 11g服务器端,则驱动程序包位于

D:\oracle\product\11.2.0\dbhome_1\jdbc\lib

2 将驱动程序包引入工程

笔者的集成开发环境用的是IntelliJIDEA 14.0.1,JDK的版本为1.7。则驱动程序包应该使用ojdbc6.jar。

(1)建立工程,工程名随意,比如MyJDBC。

(2)点击左上角菜单栏中的”File”à“ProjectStructure…”

(3)在弹出的界面中选择“Modules”à“Dependencies”à右侧的“+”按纽,在弹出的右侧的小窗口中选择第二个选项“Library…”

(4)在弹出的“Choose Libraries”窗口中,选择底部的“New Library”à”Java”,弹出”Select Library Files”窗口,

(5)找到D:\oracle\product\11.2.0\dbhome_1\jdbc目录,选择ojdbc6.jar

(6)选择好驱动程序包的界面如下图所示,点击底部的“Add Selected”按纽

(7)下图显示驱动程序包已经被添加到MyJDBC工程中,点击底部的“OK”按纽

(8)返回工程主界面,可以看到左下角除了JDK1.7外,ojdbc6.jar也被添加进来了

3 编写程序

建立一个Java类,名字随意,比如JdbcTest。其代码如下:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.PreparedStatement;
import java.util.Date;

public class JdbcTest{
    publicstatic void main(String[] args) {
        String driver = "oracle.jdbc.OracleDriver";    //驱动标识符
        
String url = "jdbc:oracle:thin:@localhost:1521:orcl"//链接字符串
        // url ="jdbc:oracle:thin:@10.0.30.64:1521:orcl";  // 连接远程的数据库可以这么写
        
String user = "scott";         //数据库的用户名
        
String password = "tiger";     //数据库的密码
        
Connection con = null;
        PreparedStatement pstm = null;
        ResultSet rs = null;
        boolean flag = false;

try {
            Class.forName(driver);
            con = DriverManager.getConnection(url,user, password);
            String sql = "select * from emp";
            pstm =con.prepareStatement(sql);
            rs = pstm.executeQuery();
            while(rs.next()) {
                int empno = rs.getInt("empno");
                String ename =rs.getString("ename");
                double sal = rs.getDouble("sal");
                Date hiredate =rs.getDate("hiredate");
                int deptno = rs.getInt(("deptno"));
                System.out.println(empno +"\t"+ ename +"\t"+ sal +"\t"+ hiredate +"\t"+ deptno);
            }

flag = true;
        } catch(ClassNotFoundException e) {
            e.printStackTrace();
        }
        catch(SQLException e) {
            e.printStackTrace();
        }
        finally {
            if(rs != null) {
                try {
                    rs.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }

// 关闭执行通道
            
if(pstm !=null) {
                try {
                    pstm.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }

// 关闭连接通道
            
try {
                if(con != null &&(!con.isClosed())) {
                    try {
                        con.close();
                    } catch (SQLException e) {
                       e.printStackTrace();
                    }
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

if(flag) {
            System.out.println("执行成功!");
        } else {
            System.out.println("执行失败!");
        }
    }
}

4 运行结果

5 验证

登录数据库,查询scott.emp中的数据,可以看到相关的信息与上面的运行结果是一致的。

Java笔记4:JDBC纯驱动方式连接Oracle的更多相关文章

  1. JDBC纯驱动方式连接MySQL

    1 新建一个名为MysqlDemo的JavaProject 2 从http://dev.mysql.com/downloads/connector/j/中下载最新的驱动包. 这里有.tar.gz和.z ...

  2. java thin方式连接oracle数据库

    本文主要描述通过thin方式连接oracle数据库 1.创建web project ,将D:\oracle\product\10.2.0\db_1\jdbc\lib(oracle安装目录)下的ojdb ...

  3. vc++用ADO方式连接oracle问题

    今天装了个oracle客户端,准备写个访问远程oracle的程序.用的是vs2010,采用ADO的连接方法连接oracle,结果运行的时候总是报下面的错: 从提示可以看出是没有找到OraOLEDBup ...

  4. C# 多种方式连接Oracle。

    废话不多说直接正题: 首先我们先在Oracle数据库下建了一个用户叫做lisi,密码为lisi,在这个用户下建立一张表叫做“USERS”,在这个表下新增三个数据. 方式一:利用OleDb连接Oracl ...

  5. java基础之JDBC八:Druid连接池的使用

    基本使用代码: /** * Druid连接池及简单工具类的使用 */ public class Test{ public static void main(String[] args) { Conne ...

  6. java基础之JDBC七:C3P0连接池的使用

    使用C3P0的前提是需要引入jar包 具体使用如下: /** * c3p0的应用 * 前提:引入c3p0的jar包 */ public class Test { public static void ...

  7. java笔记之变量的存储方式

    1.java变量存储域 java变量的存储区域主要放在以下几个地方: (1)寄存器:可以说是最快的存储区,在C/C++中可以声明寄存器变量,但是在java中不能声明寄存器变量,只是编译器在编译时确定. ...

  8. java通过配置文件(Properties类)连接Oracle数据库代码示例

    import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java. ...

  9. Java JDBC连接Oracle

    1. 安装Oracle数据库,我这里使用的是Oracle 12c 2. 创建Java工程 connection-oracle 注意:使用的JavaSE-1.8 3. 在Oracle的安装目录里,将dj ...

随机推荐

  1. [Leetcode Week2]Sort Colors

    Sort Colors题解 原创文章,拒绝转载 题目来源:https://leetcode.com/problems/sort-colors/description/ Description Give ...

  2. isatty

    isatty - test whether a file descriptor refers to a terminal #include <stdio.h> #include <u ...

  3. jenkins===当postman出现错误403 No valid crumb was included in the request的解决办法

    问题描述:当使用postman获取jenkins的json数据的时候,会返回标题中描述的错误 如下图: 将圈中的框,取消勾选! 再次运行正常! 这时候修改jenkins如下:

  4. Backbone Collection 源码简谈

    一切由一个例子引发: var Man=Backbone.Model.extend({ initilize:function(){ this.bind('change:name',function(){ ...

  5. [ 总结 ] web server iptables 简单配置

    [root@server ~]# iptables -F [root@server ~]# iptables -X [root@server ~]# iptables -A INPUT -m stat ...

  6. 只运行一个exe应用程序的使用案例

    应用程序的exe启动设置 using System;using System.Diagnostics;using System.Reflection;using System.Runtime.Inte ...

  7. win32 listctrl控件右键菜单的实现

    HMENU Menu_list,Menu_all; POINT point; HINSTANCE hInstance;//下面代码放到BOOL WINAPI DialogProc下 case WM_C ...

  8. Qt笔记——绘图(QBitmap,QPixmap,QImage,QPicture)

    QPainter绘图 重写绘图事件,虚函数 如果窗口绘图,必须放在绘图事件里实现 绘图事件内部自动调用,窗口需要重绘的时候,状态改变 绘图设备(QPixmap,QImage,QBitmap,QPict ...

  9. Java处理文件BOM头的方式推荐

    背景: java普通的文件读取方式对于bom是无法正常识别的. 使用普通的InputStreamReader,如果采用的编码正确,那么可以获得正确的字符,但bom仍然附带在结果中,很容易导致数据处理出 ...

  10. linux基本优化

    修改主机名 hostnamectl set-hostname <hostname> 修改终端命令行颜色 # vim /etc/profile 末尾添加 PS1='\[\e[31;40m\] ...