javaWeb_JDBC_JDBC概述以及driver基本使用

拈花ヽ惹草 提交于 2020-05-01 21:44:39


JDBC基础知识1

1.几个基础概念

(1).数据的持久化
把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存
到硬盘上加以”固化”,而持久化的实现过程大多通过各种关系数据库来完成。也即是说我们通过关系型数据库来实现把需要存
储的内容保存到计算机上,我们需要使用的时候呢,再通过数据库把它调用出来。

(2).java中可使用数据持久化的几个技术

A:JDBC技术访问数据库

B:JDO技术

C:第三方O/R技术:如Hibernate,ibites

注意:JDO技术和第三方O/R技术底层使用的也是JDBC技术。所以JDBC是比较重要的知识点


2.JDBC概述
(1).JDBC(Java Database Connectivity)是一个独立于特定数据库管理系统、通用的SQL数据库存取和操作的公共接口(一组API)
,定义了用来访问数据库的标准Java类库,使用这个类库可以以一种标准的方法、方便地访问数据库资源

(2).JDBC为访问不同的数据库提供了一种统一的途径,为开发者屏蔽了一些细节问题。

(3).JDBC的目标是使Java程序员使用JDBC可以连接任何提供了JDBC驱动程序的数据库系统,这样就使得程序员无需对特定的数据
库系统的特点有过多的了解,从而大大简化和加快了开发过程


3.java程序是如何通过JDBC来和数据库进行交互的(图解)


4.JDBC驱动

(1).JDBC驱动程序:各个数据库厂商根据JDBC的规范制作的 JDBC 实现类的类库,其实就是一种多态。

(2).JDBC驱动程序总共有四种类型:
第一类:JDBC-ODBC桥。
第二类:部分本地API部分Java的驱动程序。
第三类:JDBC网络纯Java驱动程序。
第四类:本地协议的纯 Java 驱动程序。
第三、四两类都是纯Java的驱动程序,因此,对于Java开发者来说,它们在性能、可移植性、功能等方面都有优势


5.JDBC相关的操作层级结构(图解)

 

6.Dirver接口

(1).概述
Java.sql.Driver 接口是所有 JDBC 驱动程序需要实现的接口。这个接口是提供给数据库厂商使用的,不同数据库厂商提供
不同的实现。

(2).在程序中不需要直接去访问实现了 Driver 接口的类,而是由驱动程序管理器类(java.sql.DriverManager)去调用这些
Driver实现

(3).使用Driver实现数据库连接步骤:
A: 创建一个 Driver 实现类的对象
B: 准备连接数据库的基本信息: url, user, password
C: 调用 Driver 接口的 connect(url, info) 获取数据库连接

注意:
-1.什么是JDBC URL?
JDBC URL 用于标识一个被注册的驱动程序,驱动程序管理器通过这个 URL 选择正确的驱动程序,从而建立到数据库的
连接。
-2.JDBC URL的构成
JDBC URL的标准由三部分组成,各部分间用冒号分隔。
jdbc:<子协议>:<子名称>
协议:JDBC URL中的协议总是jdbc
子协议:子协议用于标识一个数据库驱动程序
子名称:一种标识数据库的方法。子名称可以依不同的子协议而变化,用子名称的目的是为了定位数据库提供足够的信息

-3.几种常见的JDBC URL
对于 Oracle 数据库连接,采用如下形式:
jdbc:oracle:thin:@localhost:1521:sid
对于 SQLServer 数据库连接,采用如下形式:
jdbc:microsoft:sqlserver//localhost:1433; DatabaseName=sid
对于 MYSQL 数据库连接,采用如下形式:
jdbc:mysql://localhost:3306/sid

 


(4).代码实现(指定数据库连接)

public void testDriver() throws SQLException {
//1. 创建一个 Driver 实现类的对象
Driver driver = new com.mysql.jdbc.Driver();

//2. 准备连接数据库的基本信息: url, user, password
String url = "jdbc:mysql://localhost:3306/test";
Properties info = new Properties();
info.put("user", "root");
info.put("password", "1230");

//3. 调用 Driver 接口的 connect(url, info) 获取数据库连接
Connection connection = driver.connect(url, info);
System.out.println(connection);
}

//注意:以上的方法仅仅是mysql数据库可以连接,但是呢,我们知道JDBC是可以通过不同的数据库产商给出的连接以及相关的
驱动可以实现不同的数据库连接,那么上述代码就需要修改,没有实现动态的操作。我们的目的是为了实现在不修改原来的基础
代码下面实现不同的数据库连接。


(5).使用Driver实现数据库连接(通用)

public Connection getConnection() throws Exception{
String driverClass = null;
String jdbcUrl = null;
String user = null;
String password = null;

//读取类路径下的 jdbc.properties 文件
InputStream in = getClass().getClassLoader().getResourceAsStream("jdbc.properties");
Properties properties = new Properties();
properties.load(in);
driverClass = properties.getProperty("driver");
jdbcUrl = properties.getProperty("jdbcUrl");
user = properties.getProperty("user");
password = properties.getProperty("password");

//通过反射常见 Driver 对象.
Driver driver = (Driver) Class.forName(driverClass).newInstance();
Properties info = new Properties();
info.put("user", user);
info.put("password", password);

//通过 Driver 的 connect 方法获取数据库连接.
Connection connection = driver.connect(jdbcUrl, info);

return connection;
}

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!