通过JDBC连接oracle数据库的十大技

Java JDBC连接Oracle详解 一)JDBC简介 JDBC是一种数据库连接,全称Java Database Connectivity,简称JDBC。 作用:主要是用来规范客户端如何访问数据库的应用程序接口,提供了增删改查等API接口。 API概述: DriverManager:负责加载各种不同的驱动,并返回对应的数据库连接。 Connection:数据库连接,负责和数据库通讯。 PreparedStatemen... 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> Java数据库连接(JDBC)API是一系列能够让Java编程人员访问数据库的接口,各个开发商的接口并不完全相同。在使用多年的Oracle公司的JDBC后,我积累了许多技巧,这些技巧能够使我们更好地发挥系统的性能和实现更多的功能。   1、在客户端软件开发中使用Thin驱动程序   在开发Java软件方面,Oracle的数据库提供了四种类型的驱动程序,二种用于应用软件、applets、servlets等客户端软件,另外二种用于数据库中的Java存储过程等服务器端软件。在客户机端软件的开发中,我们可以选择OCI驱动程序或Thin驱动程序。OCI驱动程序利用Java本地化接口(JNI),通过Oracle客户端软件与数据库进行通讯。Thin驱动程序是纯Java驱动程序,它直接与数据库进行通讯。为了获得最高的性能,Oracle建议在客户端软件的开发中使用OCI驱动程序,这似乎是正确的。但我建议使用Thin驱动程序,因为通过多次测试发现,在通常情况下,Thin驱动程序的性能都超过了OCI驱动程序。   2、关闭自动提交功能,提高系统性能   在第一次建立与数据库的连接时,在缺省情况下,连接是在自动提交模式下的。为了获得更好的性能,可以通过调用带布尔值false参数的Connection类的setAutoCommit()方法关闭自动提交功能,如下所示:   conn.setAutoCommit(false);   值得注意的是,一旦关闭了自动提交功能,我们就需要通过调用Connection类的commit()和rollback()方法来人工的方式对事务进行管理。   3、在动态SQL或有时间限制的命令中使用Statement对象   在执行SQL命令时,我们有二种选择:可以使用PreparedStatement对象,也可以使用Statement对象。无论多少次地使用同一个SQL命令,PreparedStatement都只对它解析和编译一次。当使用Statement对象时,每次执行一个SQL命令时,都会对它进行解析和编译。这可能会使你认为,使用PreparedStatement对象比使用Statement对象的速度更快。然而,我进行的测试表明,在客户端软件中,情况并非如此。因此,在有时间限制的SQL操作中,除非成批地处理SQL命令,我们应当考虑使用Statement对象。   此外,使用Statement对象也使得编写动态SQL命令更加简单,因为我们可以将字符串连接在一起,建立一个有效的SQL命令。因此,我认为,Statement对象可以使动态SQL命令的创建和执行变得更加简单。 4、利用helper函数对动态SQL命令进行格式化   在创建使用Statement对象执行的动态SQL命令时,我们需要处理一些格式化方面的问题。例如,如果我们想创建一个将名字O'Reilly插入表中的SQL命令,则必须使用二个相连的“''”号替换O'Reilly中的“'”号。完成这些工作的最好的方法是创建一个完成替换操作的helper方法,然后在连接字符串心服用公式表达一个SQL命令时,使用创建的helper方法。与此类似的是,我们可以让helper方法接受一个Date型的值,然后让它输出基于Oracle的to_date()函数的字符串表达式。   5、利用PreparedStatement对象提高数据库的总体效率   在使用PreparedStatement对象执行SQL命令时,命令被数据库进行解析和编译,然后被放到命令缓冲区。然后,每当执行同一个PreparedStatement对象时,它就会被再解析一次,但不会被再次编译。在缓冲区中可以发现预编译的命令,并且可以重新使用。在有大量用户的企业级应用软件中,经常会重复执行相同的SQL命令,使用PreparedStatement对象带来的编译次数的减少能够提高数据库的总体性能。如果不是在客户端创建、预备、执行PreparedStatement任务需要的时间长于Statement任务,我会建议在除动态SQL命令之外的所有情况下使用PreparedStatement对象。   6、在成批处理重复的插入或更新操作中使用PreparedStatement对象   如果成批地处理插入和更新操作,就能够显著地减少它们所需要的时间。Oracle提供的Statement和 CallableStatement并不真正地支持批处理,只有PreparedStatement对象才真正地支持批处理。我们可以使用addBatch()和executeBatch()方法选择标准的JDBC批处理,或者通过利用PreparedStatement对象的setExecuteBatch()方法和标准的executeUpdate()方法选择速度更快的Oracle专有的方法。要使用Oracle专有的批处理机制,可以以如下所示的方式调用setExecuteBatch(): PreparedStatement pstmt3D null; try { ((OraclePreparedStatement) pstmt).setExecuteBatch(30); ... pstmt.executeUpdate(); }   调用setExecuteBatch()时指定的值是一个上限,当达到该值时,就会自动地引发SQL命令执行,标准的executeUpdate()方法就会被作为批处理送到数据库中。我们可以通过调用PreparedStatement类的sendBatch()方法随时传输批处理任务。   7、使用Oracle locator方法插入、更新大对象(LOB)   Oracle的PreparedStatement类不完全支持BLOB和CLOB等大对象的处理,尤其是Thin驱动程序不支持利用PreparedStatement对象的setObject()和setBinaryStream()方法设置BLOB的值,也不支持利用setCharacterStream()方法设置CLOB的值。只有locator本身中的方法才能够从数据库中获取LOB类型的值。可以使用PreparedStatement对象插入或更新LOB,但需要使用locator才能获取LOB的值。由于存在这二个问题,因此,我建议使用locator的方法来插入、更新或获取LOB的值。   8、使用SQL92语法调用存储过程   在调用存储过程时,我们可以使用SQL92或Oracle PL/SQL,由于使用Oracle PL/SQL并没有什么实际的好处,而且会给以后维护你的应用程序的开发人员带来麻烦,因此,我建议在调用存储过程时使用SQL92。   9、使用Object SQL将对象模式转移到数据库中   既然可以将Oracle的数据库作为一种面向对象的数据库来使用,就可以考虑将应用程序中的面向对象模式转到数据库中。目前的方法是创建Java bean作为伪装的数据库对象,将它们的属性映射到关系表中,然后在这些bean中添加方法。尽管这样作在Java中没有什么问题,但由于操作都是在数据库之外进行的,因此其他访问数据库的应用软件无法利用对象模式。如果利用Oracle的面向对象的技术,可以通过创建一个新的数据库对象类型在数据库中模仿其数据和操作,然后使用JPublisher等工具生成自己的Java bean类。如果使用这种方式,不但Java应用程序可以使用应用软件的对象模式,其他需要共享你的应用中的数据和操作的应用软件也可以使用应用软件中的对象模式。   10、利用SQL完成数据库内的操作   我要向大家介绍的最重要的经验是充分利用SQL的面向集合的方法来解决数据库处理需求,而不是使用Java等过程化的编程语言。   如果编程人员要在一个表中查找许多行,结果中的每个行都会查找其他表中的数据,最后,编程人员创建了独立的UPDATE命令来成批地更新第一个表中的数据。与此类似的任务可以通过在set子句中使用多列子查询而在一个UPDATE命令中完成。当能够在单一的SQL命令中完成任务,何必要让数据在网上流来流去的?我建议用户认真学习如何最大限度地发挥SQL的功能。
JDBC连接Oracle数据库步骤 1,数据库建立表(此处省略) 2,将数据库连接的Jar包导入项目的lib包中 3,创建编写db.properties配置文件 创建文件更改名字保存就可以了,因为我已经创建过,所以报错  将配置代码复制到创建的properties配置文件中 drivername=oracle.jdbc.driver.OracleDriver     //(驱动名,直接复制) url=jdbc:... 阅读详情

相关推荐

jdbc连接oracle 11g

oracle jdbc 驱动在oracle安装文件下都有,本人的驱动是在E:\oracle\product\11.1.0\db_1\jdbc\lib下,有    5的代表jdk 5.0的,6代表jdk 6.0的。其实驱动的含义是一些实现类。我们知道jdbc有统一的api可以操作不同的数据库,达到跨数据库的功能,可是sun公司是怎么做到的呢?    其实我们正常用到的只是一些接口中的函数,而真正

shizhan1881的专栏 4867

通过JDBC连接oracle数据库的十大技巧

Java数据库连接(JDBC)API是一系列能够让Java编程人员访问数据库的接口,各个开发商的接口并不完全相同。在使用多年的Oracle公司的JDBC后,我积累了许多技巧,这些技巧能够使我们更好地发挥系统的性能和实现更多的功能。   1、在客户端软件开发中使用Thin驱动程序   在开发Java软件方面,Oracle的数据库提供了四种类型的驱动程序,二种用于应用软件、applets、servle

键者天行 6780

【PB续命06】JDBC连接Oracle数据库

JDBC(Java DataBase Connectivity) 称为Java数据库连接,它是一种用于数据库访问的应用程序API,由一组用Java语言编写的类和接口组成,有了JDBC就可以用同一的语法对多种关系数据库进行访问,而不用担心其数据库操作语言的差异。有了JDBC,就不必为访问Mysql数据库专门写一个程序,为访问Oracle又专门写一个程序等等。

REST2SQL ,JSON2WEB 1342

JDBC--连接数据库的五种方式

方式一:显式使用第三方api //jdbc获取数据库连接 public class Connection_use { public static void main(String[] args) throws SQLException { //com.mysql.cj.jdbc.Driver() Driver driver=new com.mysql.cj.jdbc.Driver(); //jdbc:mysql:协议 //local

qq_52360788的博客 1154

掌握JDBC连接Oracle数据库的完整步骤

Java数据库连接(JDBC)是一套允许Java程序与数据库进行通信的API。它定义了Java程序如何与数据库交互的机制,允许执行SQL语句,并返回结果。JDBC为不同的数据库管理系统提供了一个标准的接口,使得Java开发者能够使用一致的方式来操作不同的数据库系统。Oracle数据库是一个关系型数据库管理系统(RDBMS),由甲骨文公司开发,广泛应用于大型企业级应用中。它支持多种操作系统平台,以高性能、高可靠性和高安全性著称。

weixin_33419305的博客 1399

C语言|深入浅出讲解int转换为float全过程(附2017年统考大题案例)

int转换为float类型为什么会发生精度损失? 精度损失的详细过程究竟是什么样的? 什么样情况float会发生精度损失?没有弄懂2017年浮点数统考大题? 这一篇用2017年统考大题案例帮你更深的理解浮点数的存储规则。

DADONGOOO的博客 1万+

JDBC 连接串中指定当前 schema(含 Oracle, DB2, PostgreSQL 和 SQLServer)

现在流行数据都有 Schema 的概念,一般作为数据库对象(表,函数,存储过程等)的命名空间。所以在数据库端往往存在 实例/数据库/Schema 这样层级划分。对于 DB2 和 Oracle 用客户端创建一个新的数据库并非易事,灵活的在数据库中较轻量的划分隔离空间的办法因数据库类型而异 MySQL: 创建数据库(create database), create schema 是 create database的别名 PostgreSQL: create database 创建新的数据库,或在当前数据..

一叶不知秋 8143

避坑指南:STM32CubeMX配置USB虚拟串口时Heap Size设置的那些坑

本文深入剖析了使用STM32CubeMX配置USB虚拟串口时,因Heap Size设置不当导致设备无法识别的常见问题。文章从故障现象出发,详细解释了堆内存不足如何影响USB枚举过程,并提供了从内存布局分析、动态监控到系统化调试的完整解决方案,帮助开发者从根本上避免这一配置陷阱。

ttt77的博客 599

使用JDBC连接数据库的几种方法

使用java中的JDBC连接数据库(以mysql数据库为例) 方法一:使用Driver接口实现连接 步骤: ① 创建一个Driver实现累的对象 Driver driver = new Driver(); ②准备连接数据库的基本信息:url、user、password (若连接mysql数据库时产生版本不匹配的问题,这里有参考:https://editor.youkuaiyun.com/md/?articleId=118525689) String url = "jdbc:mysql://127.0.0.1:3306

weixin_47474875的博客 2133

STM32—时钟树(结合系统时钟函数理解)

时钟树的概念: 我们可以把MCU的运行比作人体的运行一样,人最重要的是什么?是心跳! 心脏的周期性收缩将血液泵向身体各处。心脏对于人体好比时钟对于MCU,微控制器(MCU)的运行要靠周期性的时钟脉冲来驱动,而这个脉冲的始源往往是由外部晶体振荡器提供时钟输入,最终转换为多个外部设备的周期性运作。这种时钟“能量”的传递路径犹如大树的养分由主干流向个分支,因此称为时钟树。 STM32时钟: 在STM32...

肥宅快乐博客 1万+

Ubuntu20.04安装NVIDIA显卡驱动避坑指南:从.run文件到完美运行

本文详细介绍了在Ubuntu20.04系统上通过.run文件安装NVIDIA显卡驱动的完整流程和避坑技巧。从禁用Nouveau驱动、选择合适显示管理器到处理常见安装问题,提供了一套经过验证的解决方案,帮助用户顺利完成驱动安装并优化性能。

weixin_30776273的博客 604

sqlplus连接oracle_Oralce数据库连接方法

连接oracle数据库常见的有四种方法,终端,sqldeveloper,PL/SQL和Navicat,终端是最好用,最简单的方法,只要客户有终端有oracle数据库就可以进行连接,虽然要求使用者对终端和sql查询语句要熟练,但是省去了安装软件的大部分时间,软件的安装需要3分钟或者3天。相比下还是语句的键入要快速很多。终端需要准备的:1.数据库服务器连接终端(xshell,SSH Secu...

weixin_39959126的博客 1516

SOPHGO SG2000/SG2002 AI SoC异构架构解析与应用

异构计算架构通过整合不同指令集核心(如RISC-V、Arm和8051)实现性能与功耗的平衡,是现代嵌入式系统和AIoT设备的关键技术。其原理是根据任务特性分配至最适合的计算单元,例如通用计算使用高性能核心,实时任务交由专用核心处理。这种架构在智能视觉、工业检测等场景具有显著优势,能高效处理AI推理、多媒体编解码等任务。SOPHGO SG2000系列SoC采用创新的三核异构设计,集成了0.5-1TOPS的NPU加速器,支持Linux/Android/FreeRTOS多系统并行运行。开发中需注意核心间的IPC通

weixin_30684743的博客 356

Java编程 JDBC连接Oracle数据库

JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBC API,就不必为访问Sybase数据库专门写一个程序,为访问oracle数据库又专门写一个程序。使开发人员能够更便捷的编写数据库应用程序。

路虽远,行将至。事虽难,做必达。 1万+

C#联合Halcon机器视觉框架源码—升级版

相较于之前的NxtVision,本软件代码架构更加合理,且新增。对源码有需求的,订阅本专栏后,私信我领取。、原来的vb脚本改为。

Z's Palace 1416

windows一键安装部署wvp-GB28181-pro视频监控平台

我们可以看到redis、mysql、zlm和wvp都正常运行了。该ip需要修改为wvp服务安装的 服务器的IP。默认用户名和密码分别为admin和admin。

zengliguang的专栏 5749

JDBC怎样连接Oracle,JDBC-Oracle连接教程

前言本文通过一个在Eclipse平台中搭建的小项目,在项目中使用一条静态命令来查询Oracle数据库测试用户“scott”下emp表中的几个字段,来学习JDBC连接数据库的方法。看完之后读者可以基本掌握JDBC-Oracle数据库连接方法,然后举一反三,学会使用使用JDBC连接其它数据库。0.jdbc的连接步骤①导入数据库的jdbc资源包(jar包)②注册驱动③建立数据库连接(Connection...

weixin_42161497的博客 9282

DeepSeek掘金——用DeepSeek模型构建AI 代理

在本综合指南中,我们将探讨如何利用 DeepSeek 的功能构建能够以有意义的方式理解、推理和交互的复杂 AI 代理。人工智能领域正在迅速发展,DeepSeek 的模型代表了智能 AI 代理开发的重大进步。在本综合指南中,我们将探讨如何利用 DeepSeek 的功能构建能够以有意义的方式理解、推理和交互的复杂 AI 代理。

3863

JDBC连接oracle数据库(资料整理)

JSP+JDBC(Thin模式)连接Oracle    在JSP中连接到Oracle一般有2种方式:  1、Oracle JDBC的oci8方式  2、Oracle JDBC的thin方式   我比较喜欢第2种,因为WEB发布服务器与数据库服务器一般都不会放在同一台电脑中,而在使用thin方式连接时,WEB服务器端无须安装oracle的客户端。  在动手先代码之前,我们先把环境配置妥善

xltmzzd的专栏 4684

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

通过JDBC连接Oracle数据库中的十大技巧

  通过JDBC连接Oracle数据库中的十大技巧        1、在客户端软件开发中使用Thin驱动程序   在开发Java软件方面,Oracle的数据库提供了四种类型的驱动程序,二种用于应用软件、applets、servlets等客户端软件,另外二种用于数据库中的Java存储过程等服务器端软件。在客户机端软件的开发中,我们可以选择OCI驱动程序或Thin驱动程序。

首席技术执行官CTO(Chief Technology Officer)|技术总监--邓斌博客 1402

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

java连接oracle数据库jar包_jdbc连接oracle数据库jar包

java学习:jdbc连接示例java中最常用的数据库连接技术就是JDBC。目前几乎所有的主流数据库都提供了相应的jdbc驱动,可以简单理解为.net中的数据库客户端dll,.net中如果对于netframework默认不支持的数据库(比如sqllite,mysql之类),就必须要下载专门的数据库客户端dll文件,在vs.n...文章杨俊明2012-11-03820浏览量weblogic配置sql...

weixin_33258874的博客 3846

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

jdbc连接数据库步骤oracle,JDBC连接Oracle数据库步骤

1,数据库建立表(此处省略)2,将数据库连接的Jar包导入项目的lib包中 3,创建编写db.properties配置文件 创建文件更改名字保存就可以了,因为我已经创建过,所以报错 将配置代码复制到创建的properties配置文件中drivername=oracle.jdbc.driver.OracleDriver //(驱动名,直接复制)url=jdbc:oracle:thin:@lo...

weixin_42509624的博客 1068

JDBC连接Oracle数据库实例

本文给出一个通过JDBC连接Oracle数据库的实例,希望对JDBC初学者有所帮助。我没有像很多例子那样一个函数就把整个JDBC的操作全部完成,这样的代码在企业的项目开发中一般是不能通过审核的,我现在工作的公司就对代码规范有严格要求。在企业工作中,对函数的编码有严格规范,“一个函数,只做一件事”,这就意味着你不能在一个函数里面做很多事情,所以需要拆分,另外,一个函数的代码行数也是有严格要求的,一般

翱翔云端的专栏 7361

JDBC如何与数据库进行连接

开发工具与关键技术:MyEclipse 10,JDBC应用 作者:丁晓娟 撰写时间:2019-6-4 JDBC(Java Database Connectivity):Java数据库连接,它是与数据库进行连接的纽带(与数据库进行交互)。使用JDBC,可以在不同的数据库功能模块层次上提供统一的用户界面,可以建立与数据库的连接,发送SQL语句和处理结果。 JDBC是跨数据库平台的,我们可以在java编...

weixin_44543324的博客 2179

2024 年十大热门数据库 JDBC 连接信息

按照截止 202407 的数据库排名,这么多年过去了,排第一的依然还是最强大的 Oracle - _ -.

I am rushuni. 909
上一篇: SunTM开放式网络环境--白皮书
下一篇: Sun授权ASF以开放源代码方式使用Java
java169
博客等级 码龄19年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值