• 13.Oracle通过JDBC连接Java


    一、什么是JDBC

      JDBC(Java Database Connectivity)是Java语言用于与数据库进行连接和交互的标准API。它提供了一种统一的方式来访问各种不同类型的数据库,包括Oracle、MySQL、SQL Server等。JDBC允许开发人员使用Java编程语言来执行SQL查询、更新数据库记录以及处理事务等操作。

    在Oracle数据库中,使用JDBC可以通过以下步骤进行连接和操作:

    1. 加载数据库驱动程序:使用Class.forName方法加载特定数据库的JDBC驱动程序,例如oracle.jdbc.driver.OracleDriver

    2. 建立数据库连接:使用DriverManager.getConnection方法来获取与数据库的连接,需要提供数据库的URL、用户名和密码。

    3. 创建并执行SQL语句:使用StatementPreparedStatement对象来创建和执行SQL查询、插入、更新和删除等操作。

    4. 处理查询结果:对于SELECT语句,可以通过ResultSet对象获取查询结果,并进行相应的处理。

    5. 关闭数据库连接:在操作完成后,需要调用Connection对象的close方法来关闭数据库连接,释放资源。

      通过JDBC,开发人员可以在Java应用程序中轻松地与Oracle数据库进行交互,执行各种数据库操作。这使得Java应用程序能够与数据库进行无缝集成,实现数据的存储、检索和处理等功能。

    二、Oracle通过JDBC连接Java

    1、导入jar包

    1.1 下载jar包

    下载地址:https://www.oracle.com/cn/database/technologies/appdev/jdbc-downloads.html

    根据自己的java环境下载相应的jar包,示例如下:

    在这里插入图片描述程序运行可能会出现以下问题:java.sql.SQLException: ORA-17056: 不支持的字符集(在类路径中添加 orai18n.jar): ZHS16GBK
    因此还需添加以下jar包:

    在这里插入图片描述

    下载地址https://mavenlibs.com/jar/file/com.oracle.database.nls/orai18n

    1.2 将jar包导入到java项目中

    直接将所下载的ojdbc.jar复制到java项目的lib目录下,如下图示例:

    在这里插入图片描述

    1.3编译jar包

    如下图示例:

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    2、连接数据库

    2.1 编写jdbc工具类

    此类是为更方便操作数据库连接

    package oracleConnection;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    /**
     * 操作数据库的工具类
     * 
     * @author en
     *
     */
    public class jdbcUtils {
    	// 获取数据库连接
    
    	public static Connection getConnection() throws Exception {
    		// JDBC连接参数
    		// 数据库连接字符串,格式为 jdbc:oracle:thin:@host:port:SID
    		String jdbcUrl = "jdbc:oracle:thin:@192.168.66.120:1521:ORCL";
    		// 数据库用户名
    		String username = "test";
    		// 数据库密码
    		String password = "test";
    		// oracle数据库驱动
    		String diverClass = "oracle.jdbc.OracleDriver";
    
    		// 2、加载驱动
    		Class.forName(diverClass);
    
    		// 3、获取连接
    		Connection conn = DriverManager.getConnection(jdbcUrl, username, password);
    		return conn;
    	}
    	// 关闭连接和Statement的操作
    
    	public static void closeResource(Connection conn, PreparedStatement ps) {
    		try {
    			if (ps != null) {
    				ps.close();
    			}
    
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		try {
    			if (conn != null) {
    				conn.close();
    			}
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}
    
    	// 关闭资源的操作
    	public static void closeResource(Connection conn, PreparedStatement ps, ResultSet rs) {
    
    		try {
    			if (ps != null) {
    				ps.close();
    			}
    
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		try {
    			if (conn != null) {
    				conn.close();
    			}
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		try {
    			if (rs != null) {
    				rs.close();
    			}
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88

    2.2 对数据进行基本操作

    下面是一个简单的示例,演示了如何使用JDBC连接Oracle数据库进行相关的增删改操作:

    package oracleConnection;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    
    /**
     * JDBC连接Oracle数据库进行增删改查操作
     * 
     * @author wjw
     *
     */
    public class controlData {
    
    	public static void main(String[] args) {
    		select();
    	}
    
    	// 查询表中数据
    	public static void select() {
    
    		Connection conn = null;
    		ResultSet rs = null;
    		PreparedStatement ps = null;
    		
    		try {
    			// 连接数据库
    			conn = jdbcUtils.getConnection();
    		
    			ps = conn.prepareStatement("select * from t");
    			rs = ps.executeQuery();
    			// 处理查询结果
    			while (rs.next()) {
    				// 从结果集中获取数据,例如:
    				int id = rs.getInt("ID");
    				String name = rs.getString("NAME");
    				// 在这里处理数据
    				System.out.println("ID: " + id + ", Name: " + name);
    			}
    
    		} catch (Exception e) {
    			e.printStackTrace();
    		} finally {
    			jdbcUtils.closeResource(conn, ps, rs);
    		}
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47

    运行结果如下:
    在这里插入图片描述

  • 相关阅读:
    Scrapy第六篇:日志记录和try except
    基于JAVA在线考试系统计算机毕业设计源码+系统+数据库+lw文档+部署
    threejs 3D标注
    单片机实验——水塔自动抽水系统设计(基于Proteus仿真)
    发布功能完成02《ivx低代码签到系统制作》
    利用对话式人工智能简化运营:案例研究
    基于ESP32的空气质量传感器实现与应用——详解OpenAirProject空气质量/粉尘计
    activiti7入门教程
    基于java+springboot+mybatis+vue+elementui的校园外卖商城系统
    Python小试牛刀:GUI(图形界面)实现计算器UI界面(三)
  • 原文地址:https://blog.csdn.net/qq_46645079/article/details/134455031