`
lovnet
  • 浏览: 6707010 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

Oracle培训(三十一)—JDBC第一章知识点总结——JDBC概述

 
阅读更多

Oracle培训(三十一)—JDBC第一章知识点总结——JDBC概述

知识点预览

数据库编程

JDBC

JDBC API

JDBC驱动的四种类型

JDBC开发接口和类

示例

JDBC高级应用

数据库编程

1.数据库

a)一种集中存储和管理大量数据的软件--数据库管理系统(DBMS)

b)Oracle,Mysql,Sql Server,DB2。。。。。。

c)Oracle:数据量大

d)MySQL:开源 中小型系统

e)大量数据:百万级别


2.数据库编程

a)使用各种编程语言开发程序,访问数据库,对数据库中的数据进行操作。

b)基本数据库操作:增加数据,删除数据,修改数据,查询数据。

c)与编程语言无关: JavaJsp CNet……


3.以数据库管理为基础的软件系统

a)人事管理系统,进销存管理系统,ERP(企业资源规划)等等。

b)淘宝,sohu,京东……

c)目前大部分的软件系统都与数据管理相关。

JDBC

1.连接到数据库的方法

a)ODBC—Open Database Connectivity

i.ODBC(开放数据库连接)是微软公司建立的一组规范,并提供了一组对数据库访问的标准API。ODBC提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。

ii.基于 SQL (Structured Query Language-结构化查询语言)的数据库引擎,基于 C 语言提供一个一致的方式与数据库进行通信,用于访问数据库的数据。

iii.它本身是为了使数据库的使用者不必考虑使用的是何种数据库而能能完成相同的操作而设计的。使数据库开发人员方便的对各种不同的数据库进行访问和操作。

b)JDBC

i.ODBC Java 版本

ii.SUN公司提出的使用Java访问数据库的规范

c)规范:解决某个问题的思路或者办法

JDBCAPI

1.一组集中的开发接口

2.JDBC API主要由两部分组成:

a)为Java 应用程序开发人员提供的Java 应用程序开发接口

b)JDBC驱动开发人员实现的接口



JDBC驱动的四种类型

1.实现了JDBC接口的类的集合

2.实现了java.sql.Driver 接口的类

a)任何数据库驱动类都必须实现java.sql.Driver接口

b)不同数据库,驱动是不一样的

c)JDBC驱动由数据库厂商实现

3.使用这些驱动可以连接数据库,访问并操作数据库中的数据。

4.总共有四种类型:

a)JDBC-ODBC桥+ODBC驱动

b)本地API驱动

c)网络协议驱动

d)本地协议驱动

5.JDBC驱动的四种类型1——JDBC-ODBC桥加ODBC驱动

a)把所有 JDBC的调用传递给ODBC ,再由ODBC调用本地数据库驱动代码( 本地数据库驱动代码是指 由数据库厂商提供的数据库操作二进制代码库)。

b)只要电脑装有ODBC驱动那么采用JDBC-ODBC桥几乎可以访问所有的数据库。

c)JDBC-ODBC先调用 ODBC再由ODBC去调用本地数据库接口访问数据库.所以,执行效率比较低,对于那些大数据量 存取的应用是不适合的。

d)这种方法要求客户端必须安装ODBC 驱动,所以对于基于 Internet ,Intranet的应用也是不合适的。





6.JDBC驱动的四种类型2——本地API驱动

a)直接把JDBC调用转变为数据库的标准调用再去访问数据库。

b)这种方法需要本地数据库驱动代码。

c)这种驱动比起JDBC-ODBC桥执行效率大大提高了。

d)仍然需要在客户端加载数据库厂商提供的代码库.这样就不适合基于Internet的应用.并且它的执行效率比起网络协议驱动和本地协议驱动的JDBC驱动还是不够高。


7.JDBC驱动的四种类型3——网络协议驱动

a)JDBC先把对数局库的访问请求传递给网 络上的中间件服务器. 中间件服务器再把请求翻译为符合数据库规范的调用,再把这种调用传给数据库服务器。

b)这种驱动是基于服务器的.所以不需要在客户端加载数据库厂商提供的代码库.而且 他在执行效率和可升级性方面比较好。

c)在中间件层仍然需要有配置其它数据库驱动程序,并且由于多了一个中间层传递数据,它的执行效率不是最好。




8.JDBC驱动的四种类型4——本地协议驱动

a)直接把JDBC调用转换为符合相关数据库系统规范的请求。

b)这种应用可以直接和数据库服务器通讯. 驱动完全由java实现,因此实现了平台独立性。

c)这种驱动不需要先把JDBC的调用传给ODBC或本地数据库接口或者是中间层服务器.所 以它的执行效率是非常高的.而且,它根本不需要在客户端或服务器端装载任何的软件或驱动。




9.JDBC驱动的四种类型5

a)JDBC-ODBC桥执行效率不高,更适合做为开发应用时的一种过渡方案,或者对于初学者了解JDBC编程也较适用.

b)对于那些需要大数据量操作的应用程序则应该考虑本地API驱动,网络协议驱动,本地协议驱动.

c)在Intranet方面的应用可以考虑本地API驱动,但是由于网络协议驱动和本地协议驱动在执行效率上比本地API驱动有着明显的优势,而且目前开发的趋势是使用纯java.所以网络协议驱动和本地协议驱动也可以作为考虑对象.

d)至于基于Internet方面的应用就只有考虑网络协议驱动和本地协议驱动了. 因为网络协议驱动可以把多种数据库驱 动都配置在中间层服务器.所以网络协议驱动最适合那种需要同时连接多个不同种类的数据库, 并且对并发连接要求高的应用。本地协议驱动则适合那些连接单一数据库应用。

本地化代码:中间工具 相当于翻译

连接数据库的代码:笔试经常出现

JDBC开发接口和类

1.JDBC开发接口和类1

a)java.sql—Java 2平台上的JDBC主要功能(J2SE)

b)javax.sql—Java 2平台上的JDBC扩展功能(J2EE)

i.Driver接口:数据库驱动接口。

ii.DriverManager类:管理各种驱动的类。

iii.Connection接口:对连接进行管理。

iv.Statement接口:对数据库进行操作。

v.PreparedStatement接口:对预编译的SQL语句进行处理。

vi.CallableStatement接口:执行数据库存储过程。

vii.ResultSet接口:数据库结果集。

viii.DatabaseMetadata接口:数据库的整体综合信息,由驱动程序供应商实现。

ix.ResultSetMetadata接口:用于获取关于 ResultSet 对象中列的类型和属性信息。

x.Types类:用于标识SQL中数据的类型。

2.JDBC开发接口和类

3.JDBC开发接口和类3



a)DriverManager类管理所有的驱动类。

b)通过驱动类可以获得多个数据库连接(Connection)。

c)通过每个Connection对象可以获得多个Statement对象。

d)通过每个Statement对象可以执行SQL语句,对数据进行查询操作获得ResultSet对象。

e)通过Statement对象执行SQL语句,也可以对数据进行增加、删除、修改等其他操作。

示例

1.示例代码


public classTestJDBC1 {
public staticvoid main(String[] args) {
//访问数据库需要使用的对象,最后需要释放
Connection conn= null; Statement stmt = null;
ResultSet rs =null; String sql = "";
try {
//注册数据库驱动,可以省略
Class.forName("com.mysql.jdbc.Driver");
//获得连接
    conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test?user=root&
password=root");
    //获得statement对象
    stmt = conn.createStatement();
    //执行SQL语句
    sql = "select * from student";
    rs = stmt.executeQuery(sql);
//处理结果集
   System.out.println("id\tname\tage");
    while(rs.next()){
       System.out.print(rs.getInt(1)+"\t");
       System.out.print(rs.getString(2)+"\t");
       System.out.print(rs.getInt(3)+"\n");
    }
}catch(SQLException ex) {
        ex.printStackTrace();
} catch(ClassNotFoundException e) {
 
    e.printStackTrace();
}
finally {
//关闭对象,释放资源
try {
    if(rs!=null){
        rs.close();
    }
} catch(SQLException e) {
    e.printStackTrace();
}
try {
    if(stmt!=null){
        stmt.close();
    }
} catch(SQLException e) {
    e.printStackTrace();
}
 
try {
    if(conn!=null){
        conn.close();
    }
} catch(SQLException e) {
    e.printStackTrace();
}}
}}



2.使用URL标识数据库

a)conn = DriverManager.getConnection(

"jdbc:mysql://localhost:3306/test?user=root&password=root");

b)标识数据库以便驱动能正确的识别并建立数据库连接

由提供者确定

允许间接访问

c)语法:

jdbc:subprotocol:subname

d)示例:

jdbc:mysql://localhost:3306/test //mysql连接

jdbc:odbc:dbname //odbc连接

jdbc:oracle:thin:@localhost:1521:orcl //连接oracle数据库

jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb //连接SQL Server数据库

JDBC的高级应用

1.在包javax.sql中

2.DataSource接口:表示到物理数据源的连接。

3.连接池:一种创建和管理多个数据库连接的缓冲池技术。

4.分布式事务:事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于分布式系统的不同节点上。

5.行集(RowSet):离线数据集。



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics