JDBC——入门知识【转】
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——入门知识【转】的更多相关文章
- Jdbc入门
JDBC入门 l 导jar包:驱动! l 加载驱动类:Class.forName(“类名”); l 给出url.username.password,其中url背下来! l 使用DriverMa ...
- [置顶] Mysql存储过程入门知识
Mysql存储过程入门知识 #1,查看数据库所有的存储过程名 #--这个语句被用来移除一个存储程序.不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程 #SELECT NAME FROM ...
- 移动H5开发入门知识,CSS的单位汇总与用法
说到css的单位,大家应该首先想到的是px,也就是像素,我们在网页布局中一般都是用px,但是近年来自适应网页布局越来越多,em和百分比也经常用到了.然后随着手机的流行,web app和hybrid a ...
- H5移动端开发入门知识以及CSS的单位汇总与用法
说到css的单位,大家应该首先想到的是px,也就是像素,我们在网页布局中一般都是用px,但是近年来自适应网页布局越来越多,em和百分比也经常用到了.然后随着手机的流行,web app和hybrid a ...
- Java web 入门知识 及HTTP协议详解
Java web 入门知识 及HTTP协议详解 WEB入门 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资 ...
- Java基础入门知识
Java编程入门知识 知识概要: (1)Java入门基本常识 (2)Java的特性跨平台性 (3)Java的编程环境的搭建 (4)Java的运行机制 (5)第一个Java小程序入门 (1)Java ...
- zabbix入门知识
zabbix入门知识 zabbix中文手册 https://www.zabbix.com/documentation/3.4/manual/ 1.zabbix介绍 Zabbix 是一个企业级的分布式开 ...
- React的入门知识与概念【1】
回顾在以往的项目开发中,从最初的使用的原生html+js+css+jquery开发,到后来随着项目功能的增加,也渐渐学习了Vue.js框架的开发,以及Vue.js的全家桶Axios,Vue-route ...
- 我的Python笔记补充:入门知识拾遗
声明:本文整理借鉴金角大王的Python之路,Day1 - Python基础1,仅供本人学习使用!!! 入门知识拾遗 一.bytes类型 二.三元运算 1 result = 值1 if 条件 else ...
随机推荐
- 区分虚拟机和machine simulator
1 虚拟机和machine simulator的不同 虚拟机是让多个操作系统同时共用现有的硬件架构,它不会模拟新的硬件架构.qemu这样的模拟器是模拟新的硬件架构,这个架构和host不同.
- iOS 视图在不同View之间的切换(对于convertRect:函数的一些理解)
可以通过以下函数完成坐标体系在不同View之间的切换,如下面是完成当前View向ParentView坐标的转换(一个矩阵转换)CGRect parentRect = [currentView conv ...
- HDU1964 Pipes —— 插头DP
题目链接:https://vjudge.net/problem/HDU-1964 Pipes Time Limit: 5000/1000 MS (Java/Others) Memory Limi ...
- hdu acm 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2191 题目意思:有 资金 n 和 m 种类型的大米,对第 i 种类型的大米,价格.数量.袋数分别是: ...
- Opencv实现简易播放器
实现了在MFC中显示图片,再要显示一个视频就是轻而易举的事了,本篇介绍使用Opencv制作一个简易的播放器,实现打开文件.暂停.继续播放.再次播放和总\当前帧数显示功能. 首先还是先看一下界面效果: ...
- bzoj 3073 Journeys —— 线段树优化连边
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3073 建两棵线段树,一棵从下往上连边,一棵从上往下连边,叶子节点之间也有连边: 区间向区间连 ...
- 【旧文章搬运】炉子给的SYSTEM_HANDLE_TYPE有点错误
原文发表于百度空间,2008-12-03========================================================================== 今天写程序 ...
- 交通规划_dijkstra
问题描述 G国国王来中国参观后,被中国的高速铁路深深的震撼,决定为自己的国家也建设一个高速铁路系统. 建设高速铁路投入非常大,为了节约建设成本,G国国王决定不新建铁路,而是将已有的铁路改造成高速铁路. ...
- 如何升级xcode 中的cocos2dx 到v2.2.2以上版本
每次升级cocos2dx版本都觉得不知道怎么弄才行. 这次升级到v2.2.2版本又花了我不少时间.因此在这里分享一下,以后也有地方可以查询. 1. 到http://cocos2d-x.org/ 下载最 ...
- 在Emacs中使用ECB(转载)
转自:http://joerong666.iteye.com/blog/1813876 By: 潘云登 Date: 2009-7-9 Email: ...