小白背景知识

JDBC

Java Database Connectivity (JDBC) 是一种 Java API,用于与关系数据库进行交互。它提供了一种标准的方法来执行 SQL 语句、查询数据库、更新数据以及管理数据库操作。JDBC 使得 Java 程序能够以一种与数据库无关的方式连接到各种类型的数据库系统.

java.sql

java.sql 是 Java 标准库中的一个包,它提供了一组用于与 SQL 数据库进行交互的 API。这个包是 Java Database Connectivity (JDBC) API 的一部分,允许 Java 程序以一种标准化的方式连接到数据库并执行 SQL 语句。

连接前的准备

1.准备一个驱动包

打开java-拖入驱动包到java目录-(选中它)右键-解开压缩

2.新建一个类

代码:

import java.sql.*;//导入 java.sql.

public class JDBC_TEST {  //新建一个类

         public static void main(String[] args) throws ClassNotFoundException, SQLException {

//main方法+抛出异常

示例步骤

第一步:创建一个 Connection 对象

代码

String url = "jdbc:oracle:thin:@localhost:1521:orcl";

        String userName = "scott";

        String passWord = "123456";

代码解析

String url行:定义定位符,名称是url

JDBC URL:

(Java Database Connectivity Uniform Resource Locator)java数据库连接性统一资源定位符

用于指定数据库的连接信息。它告诉 JDBC 驱动程序如何连接到数据库,包括数据库的类型、位置、端口等信息

JDBC URL 的一般格式如下:

jdbc:<subprotocol>:<subname>

jdbc::这是所有 JDBC URL 的标准前缀

<subprotocol>:指定数据库的子协议。不同的数据库有不同的子协议

<subname>:包含连接到数据库所需的具体信息,通常包括主机名、端口号、数据库名称等。格式和内容会根据不同的数据库和子协议而有所不同.

示例:

jdbc:oracle:thin:@localhost:1521:orcl:

子协议:oracle

子协议的具体信息:thin:@localhost:1521:orcl:

oracle::指定使用的数据库类型是 Oracle.

thin::表示使用 Oracle 的“Thin”驱动程序,这是一种纯 Java 驱动程序,不需要安装 Oracle 客户端软件即可连接到 Oracle 数据库.

@localhost:指定数据库服务器的主机名或 IP 地址。在这里,localhost 表示数据库服务器运行在本地机器上.

1521:指定 Oracle 数据库监听器的端口号,默认为 1521.

orcl:指定 Oracle 数据库的 SID(System Identifier),这是数据库的唯一标识符.

代码String url = "jdbc:oracle:thin:@localhost:1521:orcl";

String url =”jdbc:数据库类型:数据库的驱动程序:数据库服务器的主机名或 IP 地址: 数据库监听器的端口号:数据库的标识符”

   String userName = "scott";//定义数据库的用户名

   String passWord = "123456";//数据库用户的密码

第二步:加载驱动程序

代码:

Class.forName("oracle.jdbc.driver.OracleDriver");

代码解析

Class.forName()

这是一个 Java 反射方法,用于动态加载指定的类。在这个例子中,它用于加载 Oracle JDBC 驱动程序的类.

"oracle.jdbc.driver.OracleDriver"

这是 Oracle JDBC 驱动程序的完整类名。加载这个类后,JDBC 驱动程序会被注册到 DriverManager 中,使得 DriverManager 能够识别和使用 Oracle 的 JDBC 驱动程序.

注意:从 JDBC 4.0 开始,自动加载机制使得显式调用 Class.forName() 不再必要,因为 JDBC 驱动程序可以通过服务提供者接口(SPI)自动注册.

第三步:建立数据库连接

代码:

Connection con = DriverManager.getConnection(url, userName, passWord);

代码解析

DriverManager 类的一个静态方法,用于获取一个 Connection(连接) 对象

(url, userName, passWord)

()里面是连接对象的具体信息,即(对象的位置和连接信息,用户名,密码)

注:这里的连接对象指要连接的数据库

第四步:创建 Statement 对象,用于执行 SQL 语句

代码:

Statement stmt = con.createStatement();

下面是执行sql的示例

注:在执行sql之前,先确保你的数据库里面存在这张表,或者先新建一个表用来测试

代码:

String sql = "insert into yzd  values(1,'黄晓明')";

//一个 SQL 插入语句

stmt.execute(sql);

//是一个通用的执行方法,可以执行任何类型的 SQL 语句(查询、更新等),返回一个布尔值,表示是否返回了 ResultSet 对象

如果需要知道是否插入成功,用下面代码代替stmt.execute(sql);

 int rows = stmt.executeUpdate(sql);  // 同上面一样 可以执行sql语句,但是可以返回收到影响的行数

检查是否插入成功的代码(和上一条代码搭配着使用)

代码:

            if (rows > 0) {

                System.out.println("插入成功!");

            } else {

                System.out.println("插入失败!");

            }

如果要输出插入的数据

代码:

     String query = "select * from yzd";//定义一条sql查询语句

ResultSet result = stmt.executeQuery(query);

// stmt.executeQuery(query)执行查询语句,

//ResultSet result 定义一个接收查询结果的 ResultSet 对象。

//ResultSet 提供了遍历和访问查询结果的方法.

    while (result.next()){

        System.out.println(result.getInt(1) + "\t" + result.getString(2) );

}    

//While()一个循环语句,用于遍历 ResultSet 中的每一行

//result.next() 方法返回一个布尔值,表示是否还有更多的行可以读取。如果返回 true,则表示当前行有效,指针移动到下一行.返回false,循环结束

//result.getInt(1):获取当前行的第一列的值,现在该列是整数类型用getInt()。列的索引从 1 开始.

//result.getString(2):获取当前行的第二列的值,该列是字符串类型getString()

//System.out.println(...):将获取到的列值打印到控制台,列值之间用制表符 \t 分隔,以便于阅读.

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐