JDBC
简介
什么是 JDBC?
JDBC 指 Java 数据库连接,是一种标准Java应用编程接口( JAVA API),用来连接 Java 编程语言和广泛的数据库。
JDBC API 库包含下面提到的每个任务,都是与数据库相关的常用用法。
-
制作到数据库的连接。
-
创建 SQL 或 MySQL 语句。
-
执行 SQL 或 MySQL 查询数据库。
-
查看和修改所产生的记录。
从根本上来说,JDBC 是一种规范,它提供了一套完整的接口,允许便携式访问到底层数据库,因此可以用 Java 编写不同类型的可执行文件,例如:
所有这些不同的可执行文件就可以使用 JDBC 驱动程序来访问数据库,这样可以方便的访问数据。
JDBC 具有 ODBC 一样的性能,允许 Java 程序包含与数据库无关的代码。
JDBC 架构
JDBC 的 API 支持两层和三层处理模式进行数据库访问,但一般的 JDBC 架构由两层处理模式组成:
JDBC API 使用驱动程序管理器和数据库特定的驱动程序来提供异构(heterogeneous)数据库的透明连接。
JDBC 驱动程序管理器可确保正确的驱动程序来访问每个数据源。该驱动程序管理器能够支持连接到多个异构数据库的多个并发的驱动程序。
以下是结构图,其中显示了驱动程序管理器相对于在 JDBC 驱动程序和 Java 应用程序所处的位置。
常见的 JDBC 组件
JDBC 的 API 提供了以下接口和类:
DriverManager :这个类管理一系列数据库驱动程序。匹配连接使用通信子协议从 JAVA 应用程序中请求合适的数据库驱动程序。识别 JDBC 下某个子协议的第一驱动程序将被用于建立数据库连接。
Driver : 这个接口处理与数据库服务器的通信。你将很少直接与驱动程序互动。相反,你使用 DriverManager 中的对象,它管理此类型的对象。它也抽象与驱动程序对象工作相关的详细信息。
Connection : 此接口具有接触数据库的所有方法。该连接对象表示通信上下文,即,所有与数据库的通信仅通过这个连接对象进行。
Statement : 使用创建于这个接口的对象将 SQL 语句提交到数据库。除了执行存储过程以外,一些派生的接口也接受参数。
ResultSet : 在你使用语句对象执行 SQL 查询后,这些对象保存从数据获得的数据。它作为一个迭代器,让您可以通过它的数据来移动。
SQLException : 这个类处理发生在数据库应用程序的任何错误。
JDBC 4.0 软件包
JDBC 4.0 主要包含 java.sql 包和 javax.sql 包,在编写这本教程的时候这是 JDBC 最新的版本。它提供的主要类与数据源进行交互。
在这些包中的新功能包括改变在以下几个方面:
-
自动数据库驱动程序加载
-
异常处理的改进
-
增强的 BLOB/CLOB 功能
-
增强的连接和语句界面
-
国家字符集支持
-
SQL ROWID 访问
-
SQL 2003 XML 数据类型支持
-
注释
SQL语法
结构化查询语言(SQL)是一种标准化的语言,它可以让你对数据库进行操作,如创建项目,读取内容,更新内容和删除项目。
SQL 支持你可能会使用到的任何数据库,它可以让你编写独立于底层数据库的数据库代码。
本章介绍了 SQL,这是一个了解 JDBC 概念的先决条件。在经历了这一章后,你将能够创建,读取,更新和删除(通常被称为 CRUD 操作)一个数据库中的数据。
为了详细理解 SQL,你可以阅读我们的 MySQL 教程。
创建数据库
CREATE DATABASE 语句用于创建一个新的数据库。语法是 -
SQL> CREATE DATABASE DATABASE_NAME;
示例
下面的 SQL 语句创建一个名为 EMP 的数据库 -
SQL> CREATE DATABASE EMP;
删除数据库
使用 DROP DATABASE 语句用于删除现有的数据库。语法是 -
SQL> DROP DATABASE DATABASE_NAME;
注意:要创建或删除数据库,你必须有数据库服务器的管理员权限。请注意,删除数据库会把存储在该数据库中的数据一并删除。
创建表
CREATE TABLE 语句用于创建新表。语法是 -
SQL> CREATE TABLE TABLE_NAME
(
COLUMN_NAME column_data_type,
COLUMN_NAME column_data_type,
COLUMN_NAME column_data_type
...
);
示例
下面的 SQL 语句创建一个含有四列名为 Employees 的表 -
SQL> CREATE TABLE Employees
(
id INT NOT NULL,
age INT NOT NULL,
first VARCHAR(255),
last VARCHAR(255),
PRIMARY KEY ( id )
);
删除表
DROP TABLE 语句用于删除现有的表。语法是 -
SQL> DROP TABLE table_name;
示例
下面的 SQL 语句删除名为 Employees 的表 -
SQL> DROP TABLE Employees;
INSERT 数据
INSERT 的语法如下所示,其中 column1,column2 等数据出现在相应的列中 -
SQL> INSERT INTO table_name的VALUES(column1,column2,...);
示例
下面的 SQL INSERT 语句将在前面创建的 Employees 数据库中插入新的一行数据 -
SQL> INSERT INTO Employees VALUES(100,18,'Zara','Ali');
SELECT 数据
SELECT 语句用于从数据库中检索数据。SELECT 的语法 -
SQL> SELECT column_name, column_name, ...
FROM table_name
WHERE conditions;
WHERE 子句可以使用 =,!=,<,>,<=,>=,BETWEEN 和 LIKE 这些比较操作符。
示例
下面的 SQL 语句从 Employees 表中选出 ID 列是100的年龄、第一列、最后一列这些信息
SQL> SELECT first, last, age FROM Employees WHERE id = 100;
下面的 SQL 语句从 Employees 表中选出第一列包含 Zara 字符的年龄、第一列、最后一列这些信息
SQL> SELECT first, last, age FROM Employees WHERE first LIKE '%Zara%';
UPDATE 数据
UPDATE 语句用于更新数据。UPDATE 的语法 -
SQL> UPDATE table_name
SET column_name = value, column_name = value, ...
WHERE conditions;
WHERE 子句可以使用=,!=,<,>,<=,>=,BETWEEN 和 LIKE 这些比较操作符。
示例
下面的 SQL UPDATE 语句改变了 ID 是100的员工的age列的数据 -
SQL> UPDATE Employees SET age=20 WHERE id=100;
DELETE 数据
DELETE 语句用于从表中删除数据。DELETE 的语法-
SQL> DELETE FROM table_name WHERE conditions;
WHERE 子句可以使用=,!=,<,>,<=,>=,BETWEEN 和 LIKE 这些比较操作符。
示例
下面的 SQL DELETE 语句将 Employees 表中 ID 是100的记录删除-
SQL> DELETE FROM Employees WHERE id=100;
《-个人笔记-》