1. 什么是 JDBC

JDBC,Java Database Connectivity(Java 数据库连接),是一组执行 SQL 语句的 Java API。

JDBC,是 Java SE(Java Platform, Standard Edition)标准的一部分。

Java 程序可以通过 JDBC 连接到关系型数据库,并且使用 SQL(Structured Query Language,结构化查询语言)完成对数据库的操作。

我们开发时常用的 ORM 框架(Object Relational Mapping),例如 Hibernate,MyBatis,其本质就是对 JDBC 的一种封装。

2. JDBC 驱动和面向接口编程

Java API,就是接口(interface),所以说 JDBC 只给出了接口,没有提供实现类。

由各个数据库的厂商提供 JDBC 的实现,这些实现类就是我们口中常说的:驱动程序。

JDBC 的编程工作,是需要面向标准的 JDBC API,不需要关心使用的数据库到底是什么。

使用 Oracle,DB2,还是 MyBatis 对于 JDBC 的编程都没有影响,这就是面向接口编程。

理论上说,如果需要切换数据库,只需要换一个驱动程序就可以了,所以说,JDBC 具有跨数据库的特性。

当然实际操作上没有这么简单,因为 JDBC 跨数据库的特性是基于全部使用标准的 SQL 语句,而某些数据库会有一些只有自己才能用的特殊 SQL 语法。

例如,Oracle 的 rowid、rownum,MySQL 的 limit。

3. JDBC 组成和功能

JDBC的总体结构有四个组件:应用程序、驱动程序管理器、驱动程序和数据源。

JDBC 主要有以下三个功能:

  • 建立程序与数据库的连接。
  • 执行 SQL 语句。
  • 获得 SQL 语句的执行结果。

4. JDBC 和 ODBC

ODBC,Open Database Connectivity(开放数据库连接),也是一组通过 API 访问数据库的技术。

ODBC 先于 JDBC 的出现,JDBC 模仿了 ODBC 的设计。

与 JDBC 相同,ODBC 需要数据库厂商提供驱动,支持数据库之间的切换,而 ODBC 负责管理数据库驱动。

相比于 ODBC,JDBC 有以下优势:

  • JDBC 对于数据库的操作更加简单、直观。
  • JDBC 具有更高的安全性。

JDBC 学习笔记(一)—— JDBC 基础的更多相关文章

  1. JDBC学习笔记(1)——JDBC概述

    JDBC JDBC API是一个Java API,可以访问任何类型表列数据,特别是存储在关系数据库中的数据.JDBC代表Java数据库连接. JDBC库中所包含的API任务通常与数据库使用: 连接到数 ...

  2. 【转】JDBC学习笔记(1)——JDBC概述

    转自:http://www.cnblogs.com/ysw-go/ JDBC JDBC API是一个Java API,可以访问任何类型表列数据,特别是存储在关系数据库中的数据.JDBC代表Java数据 ...

  3. JDBC学习笔记之JDBC简介

    1. 引言 JDBC API是一种Java API,可以访问任何类型的表格数据,特别是存储在关系数据库中的数据. JDBC可以帮助我们编写下列三种编程活动的java应用程序: 1.连接到数据源,如数据 ...

  4. JDBC学习笔记一

    JDBC学习笔记一 JDBC全称 Java Database Connectivity,即数据库连接,它是一种可以执行SQL语句的Java API. ODBC全称 Open Database Conn ...

  5. JDBC 学习笔记(十一)—— JDBC 的事务支持

    1. 事务 在关系型数据库中,有一个很重要的概念,叫做事务(Transaction).它具有 ACID 四个特性: A(Atomicity):原子性,一个事务是一个不可分割的工作单位,事务中包括的诸操 ...

  6. JDBC 学习笔记(十)—— 使用 JDBC 搭建一个简易的 ORM 框架

    1. 数据映射 当我们获取到 ResultSet 之后,显然这个不是我们想要的数据结构. 数据库中的每一个表,在 Java 代码中,一定会有一个类与之对应,例如: package com.gerrar ...

  7. JDBC 学习笔记(六)—— PreparedStatement

    1. 引入 PreparedStatement PreparedStatement 通过 Connection.createPreparedStatement(String sql) 方法创建,主要用 ...

  8. JDBC学习笔记二

    JDBC学习笔记二 4.execute()方法执行SQL语句 execute几乎可以执行任何SQL语句,当execute执行过SQL语句之后会返回一个布尔类型的值,代表是否返回了ResultSet对象 ...

  9. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  10. Java学习笔记:语言基础

    Java学习笔记:语言基础 2014-1-31   最近开始学习Java,目的倒不在于想深入的掌握Java开发,而是想了解Java的基本语法,可以阅读Java源代码,从而拓展一些知识面.同时为学习An ...

随机推荐

  1. spring security 2.x HttpSessionEventPublisher 以及listener配置

    在环境为spring security2.x时 *JDK6 spring 2* 正确的filter路径是:org.springframework.security.ui.session.HttpSes ...

  2. UVA 10570 Meeting with Aliens 外星人聚会

    题意:给你一个排列,每次可以交换两个整数(不一定要相邻),求最少交换次数把排列变成一个1~n的环形排列.(正反都算) 其实就是找环了,对于一个链状序列,最小交换次数等于不在对应位置的数字个数减去环的个 ...

  3. UVA10410 TreeReconstruction 树重建 (dfs,bfs序的一些性质,以及用栈处理递归 )

    题意,给你一颗树的bfs序和dfs序,结点编号小的优先历遍,问你可能的一种树形: 输出每个结点的子结点. 注意到以下事实: (1)dfs序中一个结点的子树结点一定是连续的. (2)bfs,dfs序中的 ...

  4. guruguru

    6576: guruguru 时间限制: 1 Sec  内存限制: 128 MB提交: 28  解决: 12[提交] [状态] [讨论版] [命题人:admin] 题目描述 Snuke is buyi ...

  5. 2018.4.28 基于java的聊天系统(带完善)

    Java聊天系统 1.Socket类 Socket(InetAddress address, int port) 创建一个流套接字并将其连接到指定 IP 地址的指定端口号. Socket(String ...

  6. python之道08

    1.有如下文件,a1.txt,里面的内容为: 某某是最好的学校, 全心全意为学生服务, 只为学生未来,不为牟利. 我说的都是真的.哈哈 分别完成以下的功能: a,将原文件全部读出来并打印. 答案 f ...

  7. C++内联函数、宏定义和普通函数的区别

    C++内联函数.宏定义和普通函数的区别? 宏定义:在预处理阶段进行简单的文本替换,不会进行参数类型检查: 内联函数:在编译器的时候进行代码插入,编译器会在每次调用内联函数的地方直接将内联函数的内容展开 ...

  8. 7.Props向子组件传递数据

    组件实例的作用域是孤立的.这意味着不能并且不应该在子组件的模板内直接引用父组件的数据. 可以使用 props 把数据传给子组件. for-child-msg="aaa"  , fo ...

  9. spring mvc + freemarker 整合

    <?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http://www.s ...

  10. VMware9虚拟机安装MAC OS X Mountain Lion 10.8.2详细图文教程

    VMware虚拟机安装Mac OS X Mountain Lion 10.8.2所需文件:1.Vmware 9.01版下载:点击进入2.Vmware 9.01版汉化文件:点击进入3.VMware Wo ...