13.Oracle通过JDBC连接Java

Oracle通过JDBC连接Java

  • 一、什么是JDBC
  • 二、Oracle通过JDBC连接Java
    • 1、导入jar包
      • 1.1 下载jar包
      • 1.2 将jar包导入到java项目中
      • 1.3编译jar包
    • 2、连接数据库
      • 2.1 编写jdbc工具类
      • 2.2 对数据进行基本操作

一、什么是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:SIDString 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 blocke.printStackTrace();}try {if (conn != null) {conn.close();}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}// 关闭资源的操作public static void closeResource(Connection conn, PreparedStatement ps, ResultSet rs) {try {if (ps != null) {ps.close();}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}try {if (conn != null) {conn.close();}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}try {if (rs != null) {rs.close();}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}
}

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);}}
}

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/154836.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微波功率计/频率计-87234系列USB峰值/平均功率计

仪器仪表 苏州新利通 87234系列 USB峰值/平均功率计 频率范围覆盖:50MHz~67GHz 一款基于USB 2.0接口的二极管检波式宽带功率测量仪器 国产思仪功率计 01 产品综述 87234D/E/F/L USB峰值/平均功率计是一款基于USB 2.0接口的二极管检波式宽带功率测…

PowerShell无人参与安装最新版本SQL Server Management Studio (SSMS)

文章目录 下载SQL Server Management Studio (SSMS)Power Shell实现无人安装推荐阅读 下载SQL Server Management Studio (SSMS) SSMS 19.2 是最新的正式发布 (GA) 版本。 如果已经安装了 SSMS 19 预览版,需要在安装 SSMS 19.2 之前将其卸载。 如果安装了 SSMS 19.…

负载均衡Ribbon和Feign的使用与区别

Ribbon 的介绍 Spring Cloud Ribbon 是基于Netflix Ribbon 实现的一套客户端负载均衡的工具。主要功能是提供客户端的软件负载均衡和服务调用。Ribbon 客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer…

Spring中用了哪些设计模式

一.简单工厂模式 又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一。 简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。 spring中的BeanFactory就是简单工厂模式的体现…

JVM基础- 垃圾回收器

基本介绍 Java虚拟机(JVM)中的垃圾回收器是用来自动管理内存的关键组件。它负责识别并回收不再使用的内存,从而防止内存泄漏。不同的JVM实现提供了多种垃圾回收器,每种回收器都有其特定的使用场景和性能特点。以下是一些常见的JV…

C++ 正则表达式使用

C 11 以后有了正则表达式,对于处理字符串还是很方便的.由于我也再学习.所以下面的内容有可能描述的不准确,这些都是我自己代码中使用的,或者demo测试的. 首先使用正则表达式先要添加头文件 #include <regex> 然后编写自己的正则表达式: 例如我想匹配字符串中表示数字…

【用unity实现100个游戏之16】Unity程序化生成随机2D地牢游戏2(附项目源码)

文章目录 先看看最终效果前言生成走廊生成房间修复死胡同增加走廊宽度获取走廊位置信息集合方法一方法二 源码完结 先看看最终效果 前言 上期已经实现了房间的生成&#xff0c;本期紧跟着上期内容&#xff0c;生成走廊并结合上期内容生成连通的房间。 生成走廊 修改Procedur…

【配置】Redis常用配置详解

文章目录 IP地址绑定设置密码 IP地址绑定 默认情况下&#xff0c;如果未指定 “bind” 配置指令&#xff0c;Redis 将监听服务器上所有可用的网络接口的连接。 可以使用 “bind” 配置指令来仅监听一个或多个选定的接口&#xff0c;后跟一个或多个 IP 地址 示例&#xff1a;bin…

集成多元算法,打造高效字面文本相似度计算与匹配搜索解决方案,助力文本匹配冷启动[BM25、词向量、SimHash、Tfidf、SequenceMatcher]

搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排)、系统架构、常见问题、算法项目实战总结、技术细节以及项目实战(含码源) 专栏详细介绍:搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排)、系统架构、常见问题、算法项目实战总结、技术…

zabbix的安装配置,邮件告警,钉钉告警

zabbix监控架构 zabbix优点 开源&#xff0c;无软件成本投入server对设备性能要求低支持设备多&#xff0c;自带多种监控模板支持分布式集中管理&#xff0c;有自动发现功能&#xff0c;可以实现自动化监控开放式接口&#xff0c;扩展性强&#xff0c;插件编写容易当监控的item…

力扣C++学习笔记——C++ 给vector去重

要使用std::set对std::vector进行去重操作&#xff0c;您可以将向量中的元素插入到集合中&#xff0c;因为std::set会自动去除重复元素。然后&#xff0c;您可以将集合中的元素重新存回向量中。以下是一个示例代码&#xff0c;演示如何使用std::set对std::vector进行去重&#…

一次性拉取所有远程仓库分支到本地并推送到另外一个仓库

拉取所有远程仓库分支到本地并推送到另外一个仓库 # 克隆仓库 git clone old_ssh_registry# 拉取仓库所有分支到本地&#xff0c;并创建本地分支 git branch -r | grep -v \-> | while read remote; do git branch --track "${remote#origin/}" "$remote&quo…

Linux系统编程 系统编程概念

1.系统调用 系统调用&#xff08;system call&#xff09;其实是 Linux 内核提供给应用层的应用编程接口&#xff08;API&#xff09;&#xff0c;是 Linux 应用层进入内核的入口。不止 Linux 系统&#xff0c;所有的操作系统都会向应用层提供系统调用&#xff0c;应用程序通过…

为什么Transformer模型中使用Layer Normalization(Layer Norm)而不是Batch Normalization(BN)

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

GCC 学习

GCC Resource Center for GCC Internalshttps://www.cse.iitb.ac.in/grc/这是个不错资料网站&#xff0c;有兴趣的可以了解下

考研思想政治理论大纲

一:马克思主义基本原理概论 (一)马克思主义是关于无产阶级和人类解放的科学 1、马克思主义的创立和发展 马克思主义的含义。马克思主义产生的经济社会根源、实践基础和思想渊源、马克思主义的创立、马克思主义在实践中的发展 2、马克思主义的鲜明特征 马克思主义科学性和革命…

【python学习】基础篇-常用模块-pickle模块:序列化和反序列化

pickle模块是Python标准库中用于序列化和反序列化的模块。通过pickle模块&#xff0c;可以将Python对象转换为字节流(序列化),也可以将字节流恢复为Python对象(反序列化)。 以下是pickle模块的一些常用函数&#xff1a; dump(obj, file, protocolNone, *, fix_importsTrue) 将…

SQL数据迁移实战:从产品层级信息到AB测试表

文章目录 创建表插入数据清空数据表数据迁移和筛选查询数据结论 创建表 首先&#xff0c;代码中定义了两个表格&#xff1a;dim_prod_hierarchy_info 和 app_abtest_product_info&#xff0c;都位于 test 数据库中。 dim_prod_hierarchy_info 表用于存储产品层级信息&#xf…

本地搭建Stackedit Markdown编辑器结合内网穿透实现远程访问

文章目录 1. docker部署Stackedit2. 本地访问3. Linux 安装cpolar4. 配置Stackedit公网访问地址5. 公网远程访问Stackedit6. 固定Stackedit公网地址 StackEdit是一个受欢迎的Markdown编辑器&#xff0c;在GitHub上拥有20.7k Star&#xff01;&#xff0c;它支持将Markdown笔记保…

AR远程辅助技术应用到气象部门有何好处?

随着科技的不断发展&#xff0c;人类对于自然环境的理解和掌控能力也在不断提升。其中&#xff0c;AR(增强现实)技术的应用&#xff0c;为气象监控带来了革命性的变化。AR气象远程监控&#xff0c;就是将AR技术与气象监控相结合&#xff0c;通过虚拟与现实的融合&#xff0c;实…