Java操作MySQL数据库:零基础轻松上手

Java操作MySQL数据库:零基础轻松上手

JDBC的原理

JDBC(Java Database Connectivity)是Java用于连接与操作数据库的API,它能让Java应用程序和各类数据库进行交互,以下是JDBC的基本原理:

  1. 驱动程序管理:JDBC借助不同的数据库驱动程序来连接不同类型的数据库。每种数据库都有对应的JDBC驱动程序,负责处理Java应用程序与数据库间的通信。常见的驱动程序类型有:
    • JDBC - ODBC桥接驱动:把JDBC调用转化为ODBC调用。
    • 原生API驱动:通过特定数据库自身的API直接连接数据库。
    • 网络协议驱动:通过中间层(如应用服务器)以网络协议访问数据库。
  2. 建立连接:应用程序通过DriverManager获取数据库连接,一般步骤为:
    • 注册数据库驱动。
    • 利用DriverManager.getConnection()方法获取连接对象。
  3. 执行SQL语句:获取连接后,可通过Connection对象创建StatementPreparedStatement对象来执行SQL语句,执行时SQL语句会发送到数据库并返回结果集。
  4. 处理结果:SQL语句执行完后,结果通常以ResultSet对象形式返回,开发者能通过ResultSet对象读取查询结果并进行相应处理。
  5. 事务管理:JDBC支持对数据库的事务管理,可通过Connection对象的方法手动控制事务,如提交、回滚等。
  6. 关闭资源:操作完成后,需关闭ResultSetStatementConnection等资源,防止内存泄漏。

总体而言,JDBC提供了与数据库交互的标准方式,让Java程序能高效访问和操作各类数据库,且具备良好跨平台性。

JDBC优势
- Java语言访问数据库操作完全面向抽象接口编程。
- 开发数据库应用无需局限于特定数据库厂商的API。
- 程序可移植性大幅增强。

JDBC的使用

1.准备数据库驱动包,并添加到项目的依赖中

下载驱动包的方法

推荐一个官方网址:中央仓库

打开该网址后在上方搜索“mysql”。

搜索完成后出现相关选项,选择第二个进入。

进入对应页面后,能看到有各种版本的驱动包。

选择版本时需依据自身MySQL版本,若MySQL版本是8.0,选8.0x系列;若是5.1版本,选5.1x系列。这里以MySQL 5.1版本为例,选择5.1x系列。

下滑找到所需版本并点击,这里下载5.1.49版本。

进入下一个界面,找到带“jar”字样的链接并点击下载。

将驱动包添加到项目依赖

下载好驱动包后要添加到项目依赖中,操作如下:

打开IDEA,右击项目文件,选择新建“Directory”模块。

通常将该模块命名为“lib”,用于存放第三方库。

找到驱动包,用“CTRL + C”复制,然后到IDEA中选中“lib”模块,用“CTRL + V”粘贴,操作完成后选择“ok”。

最后右击该驱动包,选择“Add as Library...”,操作完成后呈现相应成功状态。

2.建立数据库连接

Connection接口的实现类由数据库提供,获取Connection对象通常有两种方式:
- 方式一:通过DriverManager(驱动管理类)的静态方法获取:

// 注册数据库驱动,可通过反射方式加载适当的数据库驱动程序
try {
    Class.forName("com.mysql.cj.jdbc.Driver"); // 以MySQL数据库为例
} catch (ClassNotFoundException e) {
    e.printStackTrace();
}
// 建立数据库连接,提供数据库的URL、用户名和密码
String url = "jdbc:mysql://127.0.0.1:3306/testdb?characterEncoding=utf8&useSSL=false"; // 数据库URL,"testdb"需换成要操作的数据库名,其余部分无需修改
String user = "root"; // 用户名,一般默认是"root"
String password = "your_password"; // 密码,填写自己的MySQL密码

Connection connection = null;
try {
    connection = DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
    e.printStackTrace();
}
  • 方式二:通过DataSource(数据源)对象获取,实际应用中常用DataSource对象:
DataSource dataSource = new MysqlDataSource();
((MysqlDataSource)dataSource).setUrl
       ("jdbc:mysql://127.0.0.1:3306/testdb?characterEncoding=utf8&useSSL=false");// 数据库URL,"testdb"需换成要操作的数据库名,其余部分无需修改
((MysqlDataSource)dataSource).setUser("root"); // 用户名,一般默认是"root"
((MysqlDataSource)dataSource).setPassword("your_password");// 密码,填写自己的MySQL密码
Connection connection = dataSource.getConnection();
  • 两种方式的区别
    1. 用DriverManager类获取的Connection连接不可重复利用,使用完释放资源时,通过connection.close()关闭物理连接。
    2. DataSource提供连接池支持,初始化时会创建一定数量的数据库连接,这些连接可复用,使用完释放资源调用connection.close()是回收Connection连接对象。

3.创建操作命令(Statement)

Statement对象

Statement对象主要用于将SQL语句发送到数据库。JDBC API主要提供了三种Statement对象。

创作操作命令有多种方式,这里采用开发中常用的一种:

String sql = "select * from student";
PreparedStatement statement = connection.prepareStatement(sql);

4.执行SQL语句

主要掌握两种执行SQL的方法:
- executeQuery()方法执行后返回单个结果集,通常用于select语句。
- executeUpdate()方法返回受影响的行数,为整数,通常用于update、insert、delete语句。

第一种:执行update、insert、delete语句:

int i = statement.executeUpdate();// 返回影响的行数i
System.out.println(i);// 打印影响的行数i

第二种:执行select语句:

// 处理结果集,遍历ResultSet对象获取查询结果
try {
    while (resultSet.next()) {
        int id = resultSet.getInt("id");
        String name = resultSet.getString("name");
        System.out.println("ID: " + id + ", Name: " + name);
    }
} catch (SQLException e) {
    e.printStackTrace();
}

ResultSet对象

ResultSet对象称为结果集,代表符合SQL语句条件的所有行,通过一套getXXX方法访问行中数据。ResultSet里的数据按行排列,每行有多个字段,有记录指针,指针所指数据行为当前数据行,只能操作当前数据行。若要获取某条记录,使用ResultSet的next()方法;若要获取所有记录,使用while循环。

5.释放资源(关闭结果集,命令,连接)

try {
    if (resultSet != null) resultSet.close();
    if (statement != null) statement.close();
    if (connection != null) connection.close();
} catch (SQLException e) {
    e.printStackTrace();
}

JDBC使用步骤总结

  1. 创建数据库连接Connection
  2. 创建操作命令Statement
  3. 使用操作命令执行SQL
  4. 处理结果集ResultSet
  5. 释放资源

整个代码示例

整合以上步骤,以下是完整的JDBC示例代码:

首先需在MySQL中创建一个school数据库和一个student表,并插入多条数据。

create database school charset utf8;
use school;
create table student (
id int primary key,
name varchar(20) not null);
insert into student values (1,'张三'),(2,'李四'),(3,'王五');

上述代码在MySQL客户端执行。

import java.sql.*;

public class JdbcExample {
    public static void main(String[] args) {

        // 建立数据库连接
        String url = "jdbc:mysql://127.0.0.1:3306/school?characterEncoding=utf8&useSSL=false";
        String user = "root";
        String password = "your_password";
        Connection connection = null;

        try {
            connection = DriverManager.getConnection(url, user, password);
            Statement statement = connection.createStatement();

            // 执行SQL查询
            String sql = "SELECT * FROM student";
            ResultSet resultSet = statement.executeQuery(sql);

            // 处理结果集
            while (resultSet.next()) {
                int id = resultSet.getInt("id");
                String name = resultSet.getString("name");
                System.out.println("ID: " + id + ", Name: " + name);
            }

            // 关闭资源
            resultSet.close();
            statement.close();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (connection != null) connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

该示例展示了使用JDBC连接MySQL数据库、执行查询并处理结果的方法,请根据实际情况修改数据库URL、用户名和密码。

文章整理自互联网,只做测试使用。发布者:Lomu,转转请注明出处:https://www.it1024doc.com/12757.html

(0)
LomuLomu
上一篇 6小时前
下一篇 4小时前

相关推荐

  • 2025年最新DataGrip激活码 | 永久破解DataGrip教程 (支持2099年)

    本教程适用于JetBrains全家桶,包括IDEA、PyCharm、DataGrip、Golang等所有产品!✨ 先给大家看看最新版本的破解成果,成功激活到2099年,简直不要太爽!🎉 下面我就手把手教你如何永久激活DataGrip,这个方法同样适用于旧版本哦!不管是Windows、Mac还是Linux系统,统统适用!💪 第一步:下载DataGrip安装包 …

    2025 年 5 月 31 日
    35800
  • Redis关键数据结构深度剖析

    深度剖析Redis关键数据结构 动态字符串SDS 字符串是Redis中常用的数据结构之一。 C语言字符串的局限 Redis未直接采用C语言原生字符串,原因在于C语言字符串存在以下弊端: 长度获取:需线性时间复杂度(O(n))遍历数组来获取长度。 非二进制安全:以\0作为结束标识,致使字符串无法容纳含\0的二进制数据,像图片、音频等无法存储。 操作不便:不可直…

    2025 年 6 月 19 日
    5700
  • 2025年最新DataGrip永久破解教程(亲测有效,激活至2099年)🚀

    适用于JetBrains全家桶(IDEA、PyCharm、DataGrip、GoLand等)的终极破解方案! 先给大家看看最新版本的破解成果✨,成功激活到2099年,简直不要太爽! 下面我将通过详细的图文教程,手把手教你如何永久激活DataGrip。这个方法同样适用于旧版本哦! 无论你使用什么操作系统或版本,这里都有完整的解决方案! 💯 第一步:下载Data…

    2025 年 6 月 6 日
    8100
  • SpringMVC-09-文件上传和下载

    1、准备工作 Spring 文件上传是项目开发中最常见的功能之一 , Spring 可以很好的支持文件上传,但是 Spring 的默认环境中没有装配 MultipartResolver, 因此默认情况下其不能处理文件上传工作。 如果想使用 Spring 的文件上传功能,则需要在 Spring 环境中配置 MultipartResolver 。 前端表单 为了…

    未分类 2024 年 12 月 24 日
    34500
  • 2025年最新DataGrip永久破解教程 | 激活码&注册码一键获取 🚀

    还在为DataGrip的激活问题发愁吗?🤔 本教程将手把手教你如何轻松破解DataGrip至2099年!这个方法同样适用于JetBrains全家桶(IDEA、PyCharm等)哦~ 先看破解成果 ✨ 成功破解后,你的DataGrip将显示有效期至2099年!是不是很诱人?😍 准备工作 🛠️ 1. 下载DataGrip安装包 访问官网下载最新版:https:/…

    2025 年 5 月 13 日
    29600

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信