Java连接Oracle数据库

时间:2021-11-21 07:44:22

概要

  1. 导入JDBC的jar包
  2. 加载JDBC驱动程序
  3. 建立与数据库的连接
  4. 执行相应的SQL语句,与数据库交互
  5. 关闭连接,释放资源

详细步骤

准备条件

  • 安装好Oracle数据库,不需要SQL developer 或者plsqldev 这些图形化工具,当然有了更好,其实我觉得,用好sqlplus 命令行工具比图形化软件更好些,比如git使用的时候也不建议使用图形化界面工具。简单的git bash 就好。
  • 安装好MyEclipse 或者IDEA.

导入jar包

右键项目->构建路径->配置构建路径,选择第三项“库”,然后点击“添加外部Jar”,选择\ojdbc6_g.jar.
比如我的路径是
“D:\app\10648\product\11.2.0\dbhome_1\jdbc\lib\ojdbc6_g.jar”

Oracle建立数据表

启动sqlplus

建表(表名为Customer)

create table Customer( CustomerNumber number primary key, CustomerID varchar2(18), CustomerName varchar2(10), Address varchar2(15), Phone varchar2(15) );

插入一个记录,也就是插入一个用户信息。


INSERT INTO Customer VALUES(04,'410728199302066514', '李四''郑州''13667373125');

commit ;(非常重要)

为什么需要commit

然后查询信息

select * from customer;

操作截图

Java连接Oracle数据库

代码详解


package com.lizheng;

import java.sql.*;

public class testOracle {
    /** * 连接Oracle数据库的示例代码 */


    Connection con = null;// 创建一个数据库连接
    PreparedStatement pre = null;// 创建预编译语句对象,一般都是用这个而不用Statement
    ResultSet res=null;// 创建一个集合对象,主要用于数据库查询,查询后返回一个ResultSet对象,可以对它进行遍历

    public testOracle(){
        try{
            Class.forName("oracle.jdbc.driver.OracleDriver");// 加载Oracle驱动程序,引号内容无需改变
            System.out.println("conncetion start!");//提示连接成功
            String url = "jdbc:oracle:" + "thin:@127.0.0.1:1521:orcl";// 127.0.0.1是本机地址,orcl是我创建Oracle的数据库名
            String user = "scott";//用户名 用于登陆
            String password = "orcl";//口令 用于登陆
            con = DriverManager.getConnection(url,user,password);// 获取连接
            System.out.println("conncetion success!");
            String sql = "select * from customer";//SQL的查询语句
            pre = con.prepareStatement(sql);// 实例化预编译语句
            res = pre.executeQuery();// 执行查询,注意括号中不需要再加参数
            while(res.next()){
                    System.out.println("客户编号"+res.getInt("CustomerNumber")+"身份证号" + res.getString("Address"));
            }
        }
        catch(Exception e){
            e.printStackTrace();
        }
        finally{
             try{
                    // 逐一将上面的几个对象关闭,因为不关闭的话会影响性能、并且占用资源
                    // 注意关闭的顺序,最后使用的最先关闭
                    if (res != null)
                        res.close();
                    if (pre != null)
                        pre.close();
                    if (con != null)
                        con.close();
                    System.out.println("数据库连接已关闭!");
                }
                catch (Exception e)
                {
                    e.printStackTrace();
                }
        }
}

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        testOracle t = new testOracle(); 

    }

    }