引用百度对JDBC的解释:

  JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序。

  有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBC API,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。

下面是我对JDBC的一些理解:

  在正式介绍JDBC 之前,要先来认识应用程序如何与数据库进行沟通。数据库本身是个独立运行的应用程序,编写的应用程序是利用网络通信协议与数据库进行命令交换,以进行数据的增删查找。

  

  通常应用程序会利用一组专门与数据库进行通信协议的程序库,以简化与数据库沟通时的程序编写。

  

 问题的重点在于,你的应用程序如何调用这组程序库?不同的数据库通常会有不同的通信协议,用以连接不同数据库的程序库在API 上也会有所不同,如果应用程序直接使用这些程序库,例如:

  XySqlConnection conn = new XySqlConnection("localhost", "root", "1234");

  conn.selectDB("gossip");

  XySqlQuery query = conn.query("SELECT * FROM T_USER");

  假设这段代码中的API 是某Xy 数据库厂商程序库所提供,应用程序中要使用到数据库连接时,都会直接调用这些API,若哪天应用程序打算改用Ab 厂商数据库及其提供的数据库连接API,那就得修改相关的代码。

  另一个考量是,若Xy 数据库厂商的程序库底层实际上使用了与操作系统相关的功能,若只打算换个操作系统,则就还得先权衡一下,是否有提供该平台的数据库的程序库。

  JDBC 基本上就是用来解决这些问题,它定义一组标准类与接口,应用程序需要连接数据库时就调用这组标准API,而标准API 中的接口会由数据库厂商实现,通常称为JDBC 驱动程序(Driver)。

  

 JDBC 标准主要分为两个部分: JDBC 应用程序开发者接口(ApplicationDeveloper Interface)以及JDBC 驱动程序开发者接口(Driver Developer Interface)。如果应用程序需要连接数据库,就是调用JDBC 应用程序开发者接口,相关API 主要在java.sql 与javax.sql 两个包中。JDBC 驱动程序开发者接口则是数据库厂商要实现驱动程序时的规范,一般开发者并不用了解。

  

  使用如下JDBC代码进行连接数据库进行处理:

  Connection conn = DriverManager.getConnection(…);

  Statement st = conn.createStatement();

  ResultSet rs = st.executeQuery("SELECT * FROM T_USER");

  假设这段代码是连接MySQL 数据库,你会需要在Classpath 中设置MySQL 对应JDBC的驱动程序。具体来说,就是在Classpath 中设置一个JAR文件,此时应用程序、JDBC 与数据库的关系如下图所示。

  

  如果将来要换为Oracle 数据库,那么只要置换Oracle 驱动程序。具体来说,就是在Classpath 改设为Oracle 驱动程序的JAR 文件,而应用程序本身不用修改,如下图所示。

  

如果开发应用程序需要操作数据库,是通过JDBC 所提供的接口来设计程序,则理论上在必须更换数据库时,应用程序无须进行修改,只需要更换数据库驱动程序实现,即可对另一个数据库进行操作。

  JDBC 希望达到的目的,是希望让Java 程序员在编写数据库操作程序的时候,可以有个统一的接口,无须依赖于特定的数据库API,希望达到“写一个Java 程序,操作所有的数据库”的目的。

注意:实际上在编写Java 程序时,会因为使用了数据库或驱动程序特定的功能,而在转移数据库时仍得对程序进行修改。例如,使用了特定于某数据库的SQL语法、数据类型或内建函数调用等。

转载于:https://www.cnblogs.com/renchunxiao/archive/2013/04/08/3007457.html

(一)JDBC入门及简介相关推荐

  1. JMeter入门操作简介

    JMeter入门操作简介 1.JMter简介及作用 JMter是Apache公司用Java开发的一款测试工具 接口测试.性能测试.数据库测试.java程序测试. 可以对服务器.网络或者对象模拟巨大的负 ...

  2. kafka入门:简介、使用场景、设计原理、主要配置及集群搭建

    为什么80%的码农都做不了架构师?>>>    kafka入门:简介.使用场景.设计原理.主要配置及集群搭建(转) 问题导读: 1.zookeeper在kafka的作用是什么? 2. ...

  3. TypeScript基础入门 - 函数 - 简介

    2019独角兽企业重金招聘Python工程师标准>>> 转载 TypeScript基础入门 - 函数 - 简介 项目实践仓库 https://github.com/durban89/ ...

  4. GBDT(MART) 迭代决策树入门教程 | 简介 .

     GBDT(MART) 迭代决策树入门教程 | 简介 2013-12-23 16:26 2802人阅读 评论(0) 收藏 举报 本文章已收录于: 分类: 数据挖掘相关(13) 作者同类文章X GB ...

  5. day17(JDBC入门jdbcUtils工具介绍)

    day17 JDBC整体思维导图 JDBC入门 导jar包:驱动! 加载驱动类:Class.forName("类名"); 给出url.username.password,其中url ...

  6. JDBC入门案例及相关API概述

    1 JDBC概念 问题:JDBC的本质是什么,解决了什么问题? 2.API讲解 <1> DriverManager的作用 问题:DriverManager有什么作用? 作用一:注册驱动 D ...

  7. Web应用程序中的Spring JDBC入门

    在上一篇文章中,我已经向您展示了如何设置基本的Spring 3 MVC Web应用程序 . 重复使用该项目设置作为模板,我将向您展示如何增强它以与JDBC一起使用. 有了它,您可以存储和检索数据库中的 ...

  8. 8、JDBC入门整理

    JDBC入门 l  导jar包:驱动! l  加载驱动类:Class.forName("类名"); l  给出url.username.password, l  使用DriverM ...

  9. TypeScript基础入门 - 接口 - 简介

    转载地址 TypeScript基础入门 - 接口 - 简介 项目实践仓库 https://github.com/durban89/typescript_demo.git tag: 1.0.6 为了保证 ...

最新文章

  1. Spring学习总结(7)——applicationContext.xml 配置文详解
  2. CSS自适应的占位符效果
  3. sevlet表单处理无法相应问题及web.xml配置.
  4. 使用StaticLayout实现文字转化为图片的效果(类似发送长微博)
  5. 期末考试前的预习,科目:化工设备与反应器(4)
  6. C++11新特性- for语句
  7. android 图像对比,Android中比较两个图片是否一致的问题
  8. linux 安装org2pg_Ora2Pg的安装和使用
  9. 2020年启蒙及小学识字练字APP或小程序测评榜
  10. Arduino-atmega328p最小系统
  11. 阿里菜鸟java后台开发电话面试
  12. 小米手机android9换字体,教你免费修改小米手机字体
  13. 实践数据湖iceberg 第十课 快照删除
  14. 1、cell 内容最大长度 The maximum length of cell contents (text) is 32767 characters
  15. 电子签名屏什么牌子好
  16. Android 第三方应用接入微信平台(2)
  17. python写入文本文件的数据类型必须是_三:python数据类型和文件操作
  18. 五边形顶点坐标_任意给定五边形的5个顶点坐标,利用多边形填充的扫描算法,编写程序生成一个实心五边形...
  19. [论文笔记]GMNN图马尔可夫网络原理
  20. 伯努利方程示例 Python 计算(汽水流体和喷泉工程)

热门文章

  1. 牵引力教育设计总监解密9大2018潮流UI设计趋向
  2. vue之mapMutaions的使用 vuex中 action 用法示例 api.js的使用
  3. TSQL 聚合函数忽略NULL值
  4. Windows Phone 8初学者开发—第19部分:设置RecordAudio.xaml页面
  5. [转]MCC(移动国家码)和 MNC(移动网络码)
  6. Exchange 2013防止数据丢失DLP预览
  7. NeHe OpenGL第三十九课:物理模拟
  8. windows 2008 (非R2)使用批处理文件调整组策略过程记录
  9. 硬件断点反跳似乎_高性能应用程序:多路复用,反跳,系统字体和其他技巧
  10. 韩国文档的编码方式_像韩国学生学习英语一样学习编码