JDBC(超详细)

1 简介

JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种

关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以

构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序

Java 具有坚固、安全、易于使用、易于理解和可从网络上自动下载等特性,是编写数据库应用程序的杰

出语言。所需要的只是 Java应用程序与各种不同数据库之间进行对话的方法。

JDBC可以在各种平台上使用Java,如Windows,Mac OS和各种版本的UNIX。

JDBC库包括通常与数据库使用相关的下面提到的每个任务的API。

- 连接数据库。

- 创建SQL或MySQL语句。

- 在数据库中执行SQL或MySQL查询。

- 查看和修改生成的记录。

2 JDBC体系结构

JDBC API支持用于数据库访问的两层和三层处理模型,但通常,JDBC体系结构由两层组成:

- JDBC API:这提供了应用程序到JDBC管理器连接。

- JDBC驱动程序API:这支持JDBC管理器到驱动程序连接。

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

3 JDBC核心组件

DriverManager: 此类管理数据库驱动程序列表。使用通信子协议将来自java应用程序的连接请求

与适当的数据库驱动程序匹配。

Driver:此接口处理与数据库服务器的通信,我们很少会直接与Driver对象进行交互。而是使用

DriverManager对象来管理这种类型的对象。

Connection:该界面具有用于联系数据库的所有方法。连接对象表示通信上下文,即,与数据库

的所有通信仅通过连接对象。

Statement:使用从此接口创建的对象将SQL语句提交到数据库。除了执行存储过程之外,一些派

生接口还接受参数。

ResultSet:在使用Statement对象执行SQL查询后,这些对象保存从数据库检索的数据。它作为一

个迭代器,允许我们移动其数据。

SQLException:此类处理数据库应用程序中发生的任何错误

4 CRUD语法介绍

SQL 是一种标准化的语言,它允许你在数据库上执行操作,如创建项目,查询内容,更新内容,并

删除条目等操作。

Create, Read, Update, and Delete 通常称为CRUD操作。

CREATE DATABASE语句用于创建新的数据库:

SQL> CREATE DATABASE DATABASE_NAME;

DROP DATABASE语句用于删除现有数据库:

SQL> DROP DATABASE DATABASE_NAME;

CREATE TABLE语句用于创建新表。语法是 -

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;

INSERT的语法类似于以下内容,其中column1,column2等表示要显示在相应列中的新数据

SQL> INSERT INTO table_name VALUES (column1, column2, ...);

SELECT语句用于从数据库中检索数据。SELECT的语法是 -

SQL> SELECT column_name, column_name, ... FROM table_name WHERE conditions;

WHERE子句可以使用比较运算符,例如=,!=,<,>,<=和> =,以及BETWEEN和LIKE运算符。

UPDATE语句用于更新数据。

SQL> UPDATE table_name
SET column_name = value, column_name = value, ...
WHERE conditions;

WHERE子句可以使用比较运算符,例如=,!=,<,>,<=和> =,以及BETWEEN和LIKE运算符。

DELETE语句用于从表中删除数据。

SQL> DELETE FROM table_name WHERE conditions;

WHERE子句可以使用比较运算符,例如=,!=,<,>,<=和> =,以及BETWEEN和LIKE运算符。

5 使用步骤

构建JDBC应用程序涉及以下六个步骤:

- 导入包:需要包含包含数据库编程所需的JDBC类的包。大多数情况下,使用import java.sql.*就足够

了。

- 注册JDBC驱动程序:要求您初始化驱动程序,以便您可以打开与数据库的通信通道

- 打开连接:需要使用DriverManager.getConnection()方法创建一个Connection对象,该对象表

示与数据库的物理连接。

- 执行查询:需要使用类型为Statement的对象来构建和提交SQL语句到数据库。

- 从结果集中提取数据:需要使用相应的ResultSet.getXXX()方法从结果集中检索数据。

- 释放资源:需要明确地关闭所有数据库资源,而不依赖于JVM的垃圾收集。

6 JDBC连接步骤

建立JDBC连接所涉及的编程相当简单。这是简单的四个步骤

- 导入JDBC包:将Java语言的*import*语句添加到Java代码中导入所需的类。

- 注册JDBC驱动程序:此步骤将使JVM将所需的驱动程序实现加载到内存中,以便它可以满足您的JDBC

请求。

- 数据库URL配置:这是为了创建一个格式正确的地址,指向要连接到的数据库。

- 创建连接对象:最后,调用DriverManager对象的getConnection()方法来建立实际的数据库连

接。

Class.forName();

注册驱动程序最常见的方法是使用Java的Class.forName()方法,将驱动程序的类文件动态加载到内存

中,并将其自动注册

try {
Class.forName("com.mysql.cj.jdbc.Driver");
}catch(ClassNotFoundException ex) {
System.out.println("Error: unable to load driver class!");
System.exit(1);
}

DriverManager.registerDriver()

第二种方法是使用静态DriverManager.registerDriver()方法。

try {
Driver myDriver = new com.mysql.cj.jdbc.Driver();
DriverManager.registerDriver( myDriver );
}catch(ClassNotFoundException ex) {
System.out.println("Error: unable to load driver class!");
System.exit(1);
}
数据库URL配置

加载驱动程序后,可以使用DriverManager.getConnection()方法建立连接。为了方便参考,让我

列出三个重载的DriverManager.getConnection()方法 -

- getConnection(String url)

- getConnection(String url,Properties prop)

- getConnection(String url,String user,String password)

RDBMS       JDBC驱动程序名称     网址格式

RDBMS

JDBC驱动程序名称

网址格式

MYSQL8

com.mysql.cj.jdbc.Driver

jdbc:mysql://hostname:3306/databaseName?serverTimezone=UTC

MySQL

com.mysql.jdbc.Driver

jdbc:mysql://hostname:3306/databaseName

ORACLE

oracle.jdbc.driver.OracleDriver

jdbc:oracle:thin:@hostname:port Number:

databaseName

DB2

COM.ibm.db2.jdbc.net.DB2Driver

jdbc:db2:hostname:port Number / databaseName

SYBASE

com.sybase.jdbc.SybDriver

jdbc:sybase:Tds:hostname:port Number /

databaseName

创建数据库连接对象

String URL = "jdbc:mysql://localhost:3306/yhp2?serverTimezone=UTC";
String USER = "username";
String PASS = "password"
Connection conn = DriverManager.getConnection(URL, USER, PASS);

完整的连接地址:

版本1:

jdbc:mysql://localhost:3306/数据库名?
useSSL=false&useUnicode=true&characterEncoding=UTF-8

版本2:

jdbc:mysql://localhost:3306/yhp2?serverTimezone=UTC

使用数据库URL和属性对象

DriverManager.getConnection()方法的第三种形式需要一个数据库URL和一个Properties对象 -

DriverManager.getConnection(String url, Properties info);
import java.util.*;
String URL = "jdbc:mysql://localhost:3306/yhp2?serverTimezone=UTC";
Properties info = new Properties( );
info.put( "user", "username" );
info.put( "password", "password" );
Connection conn = DriverManager.getConnection(URL, info);

关闭数据库连接

为确保连接关闭,您可以在代码中提供一个“finally”块。一个finally块总是执行,不管是否发生异常。

要关闭上面打开的连接,你应该调用close()方法如下 -

conn.close();

6.1 JDBC执行SQL语句

一旦获得了连接,我们可以与数据库进行交互。JDBC Statement和PreparedStatement接口定义了使您

能够发送SQL命令并从数据库接收数据的方法和属性。

| 接口 | 推荐使用 |

| ------------------ | ---------------------------------------- |

| 声明 | 用于对数据库进行通用访问。在运行时使用静态SQL语句时很有用。Statement接口不能

接受参数。 |

| PreparedStatement的 | 当您计划多次使用SQL语句时使用。PreparedStatement接口在运行时接受

输入参数。 |

6.2 Statement

创建语句对象

在使用Statement对象执行SQL语句之前,需要使用Connection对象的createStatement()方法创建一个,如下例所示:

Statement stmt = null;
try {
stmt = conn.createStatement( );
. . .
}
catch (SQLException e) {
. . .
}
finally {
. . .
}

创建Statement对象后,您可以使用它来执行一个SQL语句,其中有三个执行方法之一。

- boolean execute(String SQL):如果可以检索到ResultSet对象,则返回一个布尔值true; 否则返

回false。使用此方法执行SQL DDL语句或需要使用真正的动态SQL时。

- int executeUpdate(String SQL):返回受SQL语句执行影响的行数。使用此方法执行预期会影响

多个行的SQL语句,例如INSERT,UPDATE或DELETE语句。

- ResultSet executeQuery(String SQL):返回一个ResultSet对象。当您希望获得结果集时,请使

用此方法,就像使用SELECT语句一样。

关闭Statement对象

就像我们关闭一个Connection对象以保存数据库资源一样,由于同样的原因,还应该关闭Statement对

象。

一个简单的调用close()方法将执行该作业。如果先关闭Connection对象,它也会关闭Statement对

象。但是,应始终显式关闭Statement对象,以确保正确清理。

6.3 SQL注入

就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执

行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎

执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据

库,而不是按照设计者意图去执行SQL语句。比如先前的很多影视网站泄露VIP会员密码大多就是通过

WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击。

String username ="admin";
String password=" 'abc' or 1=1 ";
String sql="select * from users where username= '"+username+"' and password=
"+password;
  • 6
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是eclipse连接mysql详细教程: 1. 下载并安装MySQL数据库 首先,你需要下载并安装MySQL数据库。你可以从官方网站上下载MySQL Community Server,然后按照安装向导进行安装。 2. 下载并安装MySQL JDBC驱动程序 接下来,你需要下载并安装MySQL JDBC驱动程序。你可以从MySQL官方网站上下载MySQL Connector/J,然后将其解压缩到一个目录中。 3. 在Eclipse中创建Java项目 打开Eclipse,然后创建一个新的Java项目。在项目中创建一个新的Java类。 4. 导入MySQL JDBC驱动程序 在Eclipse中,右键单击项目,然后选择“Build Path” > “Configure Build Path”。在“Libraries”选项卡中,单击“Add External JARs”按钮,然后选择你下载的MySQL JDBC驱动程序。 5. 编写Java代码 在Java类中,编写连接MySQL数据库Java代码。以下是一个简单的示例: ``` import java.sql.*; public class MySQLTest { public static void main(String[] args) { Connection conn = null; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password"); System.out.println("Connected to database!"); } catch (SQLException e) { System.out.println("Connection failed!"); e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } finally { try { if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } } } ``` 在上面的代码中,我们使用了JavaJDBC API来连接MySQL数据库。我们首先加载MySQL JDBC驱动程序,然后使用DriverManager类来获取数据库连接。在获取连接之后,我们可以执行SQL语句来操作数据库。 6. 运行Java程序 在Eclipse中,右键单击Java类,然后选择“Run As” > “Java Application”。如果一切正常,你应该能够看到“Connected to database!”的输出。 以上就是eclipse连接mysql详细教程。希望能对你有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值