JDBC简介
JDBC
代表Java数据库连接(Java Data Base Connectivity)
,用于Java编程语言和数据库之间的数据库连接的标准API
JDBC
库包括常见的API有;连接到数据库,创建sql语句,在数据库中执行sql语句,查看和修改结果记录- JDBC是一个连接数据库的规范,JDBC提供了一套接口取访问数据库
- Java程序员使用JDBC可以连接任何提供了JDBC驱动程 序的数据库系统
JDBC API 库包含下面提到的每个任务,都是与数据库相关的常用用法:
- 创建与数据库的连接
- 创建SQK或MySQL语句
- 执行SQL或MySQL查询数据库
- 查看和修改SQL所产生的记录
JDBC的本质
- JDBC的本质是一种规范,提供了一套完整的接口,允许便携式访问到底层数据库
- Java可通过JDBC编写不同类型的可执行文件
- Java应用程序
- Java Applets
- Java ServerPages (JSPs)
- Enterprise JavaBeans (EJBs)
- 不同的可执行文件就可以使用JDBC驱动程序去访问数据库
- JDBC允许Java程序包含于数据库无关的代码
JDBC架构简介
- 核心 JAVA 编程
- SQL 或 MySQL 数据库
JDBC的架构如下
- JDBC 的 API 支持两层和三层处理模式进行数据库访问,但一般的 JDBC 架构由两层处理模式组成:
- 面向应用的API:JDBC API: 提供了应用程序对 JDBC 管理器的连接。
- 面向数据库的API: JDBC Driver API: 提供了 JDBC 管理器对驱动程序连接。
驱动程序管理器相对于在 JDBC 驱动程序和 Java 应用程序所处的位置
-
JDBC API 使用驱动程序管理器和数据库特定的驱动程序来提供异构(heterogeneous)数据库的透明连接。
-
JDBC 驱动程序管理器可确保正确的驱动程序来访问每个数据源。该驱动程序管理器能够支持连接到多个异构数据库的多个并发的驱动程序。
JDBC程序访问数据库步骤
常见的JDBC组件
JDBC 的 API 提供了以下接口和类:
- DriverManager :这个类管理一系列数据库驱动程序。匹配连接使用通信子协议从 JAVA 应用程序中请求合适的数据库驱动程序。
- Driver : 这个接口处理与数据库服务器的通信。你将很少直接与驱动程序互动。使用 DriverManager 中的对象,它管理此类型的对象。它也抽象与驱动程序对象工作相关的详细信息。
- Connection : 此接口具有接触数据库的所有方法。该连接对象表示通信上下文,即,所有与数据库的通信仅通过这个连接对象进行。
- Statement : 使用创建于这个接口的对象将 SQL 语句提交到数据库。除了执行存储过程以外,一些派生的接口也接受参数。
- ResultSet : 在你使用语句对象执行 SQL 查询后,这些对象保存从数据获得的数据。它作为一个迭代器,让您可以通过它的数据来移动。
- SQLException : 这个类处理发生在数据库应用程序的任何错误。
JDBC连接数据库
- 第一步:导入包:需要导入包含数据库编程所需的JDBC类的包,通过使用
import java.sql.*
- 第二步:注册JDBC驱动程序,需要初始化驱动程序,打开与数据库的连接
- 第三步:需要使用 DriverManager.getConnection() 方法创建一个 Connection 对象,它代表与数据库的物理连接。
- 第四步:执行查询:需要使用类型声明的对象建立并提交一个 SQL 语句到数据库。
- 第五步:提取结果数据:要求使用适当的 ResultSet.getXXX() 方法从结果集中检索数据。
- 第六步:清理环境:依靠 JVM 的垃圾收集来关闭所有需要明确关闭的数据库资源。
package com.company;
import com.microsoft.sqlserver.jdbc.SQLServerDriver;
import java.sql.*; // 第一步 导入 JDBC 包
public class JDBC_03 {
public static void main(String[] args) throws Exception {
// JDBC driver name and database URL
final String JDBC_SqlDriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; // java连接 sql server的驱动
// final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; // Java 连接 mySql 数据库的驱动
final String DatabasesUrl = "jdbc:sqlserver://localhost:1433;DatabaseName=stu"; // Java连接指定数据库地址的语句
String USER = "SA"; // 登录到数据库的用户名
String PASS = "123456"; // 登录密码
// 第二步 注册驱动程序,注册驱动程序有两种方式:
// 第一种使用 Class.forName() 注册驱动
// 第二种使用 registerDriver() 注册驱动
// 第一种注册方法:
// Class.forName 注册驱动程序的方式是将驱动程序的类文件加载到内存中的过程,可以将其用作JDBC接口的实现,只需要在程序中注册一次即可
Class.forName(JDBC_SqlDriver);
// 第二种注册方法:
// registerDriver()
Driver myDriver = new SQLServerDriver();
DriverManager.registerDriver(myDriver);
// 第三部:打开连接 :
System.out.println("正在连接数据库。。。");
Connection conn = null; // 创建连接对象
conn = DriverManager.getConnection(DatabasesUrl,USER,PASS);
// 第四步:执行sql语句
System.out.println("连接成功,准备执行sql语句");
// 创建 Statement 对象,用于执行sql语句
Statement st;
st = conn.createStatement(); // 创建执行对象Statement执行SQL语句,由Connection对象产生
// 定义执行的sql 语句
String sql = "SELECT name, sex, nation From stuInfo";
// executeQuery() 方法用于在数据库中执行 sql 语句,同时将数据库响应的 sql 语句结果存放在 ResultSet 类对象中供我们使用
ResultSet rs = st.executeQuery(sql);
// 第五步:从结果集种提取数据,可以使用 getXXX()方法来检索数据
while (rs.next()){
String name = rs.getString("name");
String sex = rs.getString("sex");
String nation = rs.getString("nation");
System.out.println("name: " + name +"|" + "sex: " +"|" + sex+ "nation:" +"|" + nation);
}
// 第六步:清理资源
rs.close();//清理 返回结果集所占用的资源
st.close();// 清理 Statement 对象所占用的资源
conn.close(); // 清理连接数据库所占用的资源
System.out.println("访问数据库完毕");
}
}
Java_导入JDBC的包
- 使用
import
导入第三方包, 导入java.sql.*
包后,允许在数据库表中执行选择,插入,更新和删除数据
import java.sql.*;
JDBC的驱动程序
- JDBC驱动程序是JDBC API种实现定义等待接口,用于和数据库服务器进行交互。例如,使用 JDBC 驱动程序可以让你打开数据库连接,并通过发送 SQL 或数据库命令,然后通过 Java 接收结果。
- java.sql 包中附带的 JDK,包含了定义各种类与他们的行为和实际实现,这些类都在第三方驱动程序中完成。第三方供应商在他们的数据库驱动程序中都实现了 java.sql.Driver 接口。
Sql Server
的驱动程序为com.microsoft.sqlserver.jdbc.SQLServerDriver
Mysql
的驱动程序为:com.mysql.jdbc.Driver
JDK
附带的java.sql
包含各种类,java.sql
中的类被定义在第三方驱动程序中完成,- 第三供应商在其数据库驱动程序中实现
java.sql.Driver
接口