JDBC(数据库连接)

JDBC

简介

什么是 JDBC?

JDBC 指 Java 数据库连接,是一种标准Java应用编程接口( JAVA API),用来连接 Java 编程语言和广泛的数据库。

JDBC API 库包含下面提到的每个任务,都是与数据库相关的常用用法。

  • 制作到数据库的连接。

  • 创建 SQL 或 MySQL 语句。

  • 执行 SQL 或 MySQL 查询数据库。

  • 查看和修改所产生的记录。

从根本上来说,JDBC 是一种规范,它提供了一套完整的接口,允许便携式访问到底层数据库,因此可以用 Java 编写不同类型的可执行文件,例如:

  • Java 应用程序

  • Java Applets

  • Java Servlets

  • Java ServerPages (JSPs)

  • Enterprise JavaBeans (EJBs)

所有这些不同的可执行文件就可以使用 JDBC 驱动程序来访问数据库,这样可以方便的访问数据。

JDBC 具有 ODBC 一样的性能,允许 Java 程序包含与数据库无关的代码。

JDBC 架构

JDBC 的 API 支持两层和三层处理模式进行数据库访问,但一般的 JDBC 架构由两层处理模式组成:

  • JDBC API: 提供了应用程序对 JDBC 管理器的连接。

  • JDBC Driver API: 提供了 JDBC 管理器对驱动程序连接。

JDBC API 使用驱动程序管理器和数据库特定的驱动程序来提供异构(heterogeneous)数据库的透明连接。

JDBC 驱动程序管理器可确保正确的驱动程序来访问每个数据源。该驱动程序管理器能够支持连接到多个异构数据库的多个并发的驱动程序。

以下是结构图,其中显示了驱动程序管理器相对于在 JDBC 驱动程序和 Java 应用程序所处的位置。

img

常见的 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;

《-个人笔记-》

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JDBC 连接数据库的过程一般包括以下步骤: 1. 加载数据库驱动程序:使用 Class 类的 forName() 方法加载 JDBC 驱动程序,例如: ``` Class.forName("com.mysql.jdbc.Driver"); ``` 2. 建立数据库连接:使用 DriverManager 类的 getConnection() 方法建立与数据库的连接,需要指定数据库的 URL、用户名和密码,例如: ``` String url = "jdbc:mysql://localhost:3306/mydatabase"; String username = "root"; String password = "mypassword"; Connection conn = DriverManager.getConnection(url, username, password); ``` 其中,"jdbc:mysql://" 表示连接的是 MySQL 数据库,"localhost:3306" 表示连接的是本地主机上的 MySQL 数据库,"mydatabase" 是数据库的名称,"root" 是数据库的用户名,"mypassword" 是数据库的密码。 3. 创建 Statement 对象:通过 Connection 对象的 createStatement() 方法创建 Statement 对象,用于执行 SQL 语句,例如: ``` Statement stmt = conn.createStatement(); ``` 4. 执行 SQL 语句:使用 Statement 对象的 execute() 方法执行 SQL 语句,例如: ``` String sql = "SELECT * FROM users"; ResultSet rs = stmt.execute(sql); ``` 5. 处理结果集:通过 ResultSet 对象处理查询结果,例如: ``` while (rs.next()) { String username = rs.getString("username"); String password = rs.getString("password"); // 处理查询结果 } ``` 6. 关闭数据库连接:使用 Connection 对象的 close() 方法关闭数据库连接,例如: ``` conn.close(); ``` 在实际应用中,还需要考虑异常处理、事务处理等问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值