1. 什么是JDBC:Java数据库连接性(JavaDatabase Connectivity) API,允许用户从Java应用程序中访问任何表格化数据源。

2. JDBC除了提供到更宽范围的SQL数据库的连接外,也允许用户访问其他的表格数据源,如:电子表格。

3. JDBC定义了一个底层的API,用来支持独立于任何特定SQL实现的基本SQL功能。这意味着重要的是执行原SQL语句,然后检索它们的结果。

4. JDBC2.0 API包括两个包:java.sql和jvax.sql。

5. JDBC3.0规范,于2001年10月发布,引入几个特性,包括支持各种数据类型,附加的元数据能力,并增加了大量的接口。

6. JDBC的三种主要功能如下:

  • 建立与数据库或其他表列数据源的连接;
  • 向数据库发送SQL命令
  • 处理结果

7. 使用JDBC API访问数据库,并处理结果集的主要步骤:

  • 装载JDBC驱动程序
  • 获取数据库连接
  • 创建一条语句,执行SQL环境(Statement)
  • 执行SQL查询
  • 从ResultSet中检索数据
  • 释放资源

8. 装载JDBC驱动程序的几种方式:

  • Class.forName("驱动类的全限定名");
  • Driver d = new 驱动类全限定名();
    DriverManager.registerDriver(d); // 可以省略此句
  • java -Djdbc.drivers = 驱动类全限定名
    此种方式是在启动JVM时就将驱动类加载进Java虚拟机

9. 获取数据库连接

Connection conn = DriverManager.getConnection( url, user, password );

10. 创建执行SQL环境

Statement stmt = conn.createStatement();

11. 执行SQL

String sql = "select rownum, sysdate from dual";

ResultSet rs = stmt.executeQuery(sql);

12. 处理结果集

while(rs.next()) {

int i = rs.getInt(1);

Date d = rs.getDate(2);

System.out.println(i + " , " + d);

}

// 注意,JDBC结果集列是从“1”开始的,而其它地方如hibernate等都是从“0”开始的

13. 释放资源

if(rs != null) rs.close();

if(stmt != null) stmt.close();

if(conn != null) conn.close();

14. 常见的几种数据库连接方式:

  • Oracle数据库:
    Class.forName("oracle.jdbc.driver.OracleDriver");
    String url = "jdbc:oracle:thin:@[hostName]:[port]:[DB]";
  • MySQL数据库:
    Class.forName("");
    String url = "jdbc:mysql://[hostName]:[port]/[DB]";

15. JDBC驱动程序类型(4种)

  • JDBC-ODBC桥 + ODBC驱动程序
    优点:
    它提供连接几乎所有平台上的所有数据库能力;
    它可能是访问低端桌面数据库和应用程序的唯一方式。
    缺点:
    ODBC驱动程序也必须加载到目标机上;
    JDBC和ODBC转换影响性能。
  • 本地API部分Java驱动程序
    优点:
    比前一种驱动程序快得多
    缺点:
    需要在目标机上有本地代码;
    它们依赖的Java本地接口在不同JVM的提供商间的实现不一致。
  • JDBC-Net纯Java驱动程序
    优点:
    不要求客户上有任何本地二进制代码;
    不需要客户安装;
    支持多个网络选项。
    缺点:
    由于网络接口将体系结构复杂化,因此很难建立。
  • 本地协议纯Java驱动程序
    目前的驱动程序都是使用这种,比JDBC-ODBC桥快得多,100%Java驱动程序,本地协议。
 
 

JDBC——入门知识【转】的更多相关文章

  1. Jdbc入门

    JDBC入门 l  导jar包:驱动! l  加载驱动类:Class.forName(“类名”); l  给出url.username.password,其中url背下来! l  使用DriverMa ...

  2. [置顶] Mysql存储过程入门知识

    Mysql存储过程入门知识 #1,查看数据库所有的存储过程名 #--这个语句被用来移除一个存储程序.不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程 #SELECT NAME FROM ...

  3. 移动H5开发入门知识,CSS的单位汇总与用法

    说到css的单位,大家应该首先想到的是px,也就是像素,我们在网页布局中一般都是用px,但是近年来自适应网页布局越来越多,em和百分比也经常用到了.然后随着手机的流行,web app和hybrid a ...

  4. H5移动端开发入门知识以及CSS的单位汇总与用法

    说到css的单位,大家应该首先想到的是px,也就是像素,我们在网页布局中一般都是用px,但是近年来自适应网页布局越来越多,em和百分比也经常用到了.然后随着手机的流行,web app和hybrid a ...

  5. Java web 入门知识 及HTTP协议详解

     Java  web  入门知识 及HTTP协议详解 WEB入门 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资 ...

  6. Java基础入门知识

    Java编程入门知识   知识概要: (1)Java入门基本常识 (2)Java的特性跨平台性 (3)Java的编程环境的搭建 (4)Java的运行机制 (5)第一个Java小程序入门 (1)Java ...

  7. zabbix入门知识

    zabbix入门知识 zabbix中文手册 https://www.zabbix.com/documentation/3.4/manual/ 1.zabbix介绍 Zabbix 是一个企业级的分布式开 ...

  8. React的入门知识与概念【1】

    回顾在以往的项目开发中,从最初的使用的原生html+js+css+jquery开发,到后来随着项目功能的增加,也渐渐学习了Vue.js框架的开发,以及Vue.js的全家桶Axios,Vue-route ...

  9. 我的Python笔记补充:入门知识拾遗

    声明:本文整理借鉴金角大王的Python之路,Day1 - Python基础1,仅供本人学习使用!!! 入门知识拾遗 一.bytes类型 二.三元运算 1 result = 值1 if 条件 else ...

随机推荐

  1. Hadoop集群搭建-虚拟机安装(转)(一)

    1.软件准备 a).操作系统:CentOS-7-x86_64-DVD-1503-01 b).虚拟机:VMware-workstation-full-9.0.2-1031769(英文原版先安装)  VM ...

  2. Android:在子线程中更新UI的三种方式

    ①使用Activity中的runOnUiThread(Runnable) ②使用Handler中的post(Runnable) 在创建Handler对象时,必须先通过Context的getMainLo ...

  3. B.大钉骑马走江湖

    江湖是什么,对于在象棋界厮杀的大钉来说,江湖就是一个矩阵,他的目标,就是在江湖之中骑着马,从他的位置出发,走到终点. 当然,大钉的马也遵从中国象棋中的“马走日”的规则,而且在矩阵中,也会有一些障碍物, ...

  4. POJ1077 Eight —— 经典的搜索问题

    题目链接:http://poj.org/problem?id=1077 Eight Time Limit: 1000MS   Memory Limit: 65536K Total Submission ...

  5. Redis持久化(RDB和AOF)

    什么是Redis持久化 什么是Redis持久化,就是将内存数据保存到硬盘. Redis 持久化存储 (AOF 与 RDB 两种模式) RDB持久化 RDB 是以二进制文件,是在某个时间 点将数据写入一 ...

  6. box-sizing: border-box;的作用

    box-sizing 属性可以被用来调整这些表现: content-box  是默认值.如果你设置一个元素的宽为100px,那么这个元素的内容区会有100px宽,并且任何边框和内边距的宽度都会被增加到 ...

  7. Caused by: java.lang.IllegalArgumentException: Malformed \uxxxx encoding.

    application.properties中不能含有\符号.  只要遇到就会报这个错误. 解决方式:将application.properties中的 \ 改为 \\ 或者 /  

  8. 为什么越来越多公链项目将WASM拥入怀中?

    最近越来越多的项目开始转向VNT使用的WASM,像EOS.Ontology,包括最初引入虚拟机EVM运行智能合约环境的以太坊,最近也开始转向使用WASM. 什么是WASM? WASM ,全称:WebA ...

  9. 「NOIP2000」「Codevs1042」 进制转换

    题目描述 Description 我们可以用这样的方式来表示一个十进制数: 将每个阿拉伯数字乘以一个以该数字所处位置的(值减1)为指数,以10为底数的幂之和的形式.例如:123可表示为 1*102+2 ...

  10. Healthy Holsteins

    链接 分析:因为数据范围比较小,我们可以通过二进制枚举子集,然后找出所需饲料种数最小的并记录下来,同时记录一下路径,也就是字典序最小的 /* PROB:holstein ID:wanghan LANG ...