Java实现MySQL数据库操作

MySQL是目前最流行的开源关系型数据库,而Java是应用最广泛的编程语言之一。本文将会介绍如何在Java中使用MySQL数据库,包括连接MySQL数据库、执行SQL语句、以及读取结果等基本操作。

一、连接MySQL数据库

在Java中连接MySQL数据库需要使用JDBC驱动程序,在使用JDBC驱动程序之前需要先将其导入到你的Java工程中。通常情况下,我们可以通过在Maven依赖中添加以下内容来导入JDBC驱动程序:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.21</version>
</dependency>

然后,就可以连接MySQL数据库了。代码如下:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBUtil {
    private static String URL = "jdbc:mysql://localhost:3306/test?useSSL=false";
    private static String USER = "root";
    private static String PASSWORD = "123456";

    static {
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

    public static Connection getConnection() throws SQLException {
        return DriverManager.getConnection(URL, USER, PASSWORD);
    }
}

在上面的代码中,我们首先定义了MySQL数据库的连接URL、用户名和密码。然后,在静态代码块中加载JDBC驱动程序,最后通过getConnection()方法获取连接。注意,getConnection()方法有可能会抛出SQLException异常,因此我们需要在调用getConnection()方法时进行异常捕获。

二、执行SQL语句

连接成功后,我们就可以执行SQL语句了。在Java中执行SQL语句有两种方式,分别是Statement和PreparedStatement。

1. 使用Statement

Statement是一种普通的SQL语句执行方式,它的执行速度较快,但是在执行动态SQL语句时有一定的局限性。代码如下:

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class StatementDemo {
    public static void main(String[] args) throws SQLException {
        Connection conn = DBUtil.getConnection();
        Statement statement = conn.createStatement();
        String sql = "select * from user";
        ResultSet rs = statement.executeQuery(sql);
        while (rs.next()) {
            System.out.println(rs.getInt("id") + " " + rs.getString("name") + " " + rs.getInt("age"));
        }
        statement.close();
        rs.close();
        conn.close();
    }
}

在上面的代码中,我们首先获取连接和创建Statement对象,然后使用executeQuery()方法执行SQL语句,最后通过ResultSet对象读取查询结果。在使用完Statement对象之后,我们需要手动调用close()方法关闭Statement对象、ResultSet对象和连接,以释放资源。

2. 使用PreparedStatement

PreparedStatement是一种预编译的SQL语句执行方式,它的执行速度相对较慢,但是在执行动态SQL语句时较为灵活。代码如下:

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class PreparedStatementDemo {
    public static void main(String[] args) throws SQLException {
        Connection conn = DBUtil.getConnection();
        String sql = "select * from user where age = ?";
        PreparedStatement pstmt = conn.prepareStatement(sql);
        pstmt.setInt(1, 20);
        ResultSet rs = pstmt.executeQuery();
        while (rs.next()) {
            System.out.println(rs.getInt("id") + " " + rs.getString("name"));
        }
        pstmt.close();
        rs.close();
        conn.close();
    }
}

在上面的代码中,我们首先获取连接和创建PreparedStatement对象,然后使用setXXX()方法设置占位符的值,并且使用executeQuery()方法执行SQL语句,最后通过ResultSet对象读取查询结果。在使用完PreparedStatement对象之后,我们需要手动调用close()方法关闭PreparedStatement对象、ResultSet对象和连接,以释放资源。

三、读取结果

在Java中读取查询结果需要使用ResultSet对象,它可以获取查询结果中的每一行数据,以及每一列数据。代码如下:

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class ResultSetDemo {
    public static void main(String[] args) throws SQLException {
        Connection conn = DBUtil.getConnection();
        Statement statement = conn.createStatement();
        String sql = "select * from user";
        ResultSet rs = statement.executeQuery(sql);
        while (rs.next()) {
            int id = rs.getInt("id");
            String name = rs.getString("name");
            int age = rs.getInt("age");
            System.out.println(id + " " + name + " " + age);
        }
        statement.close();
        rs.close();
        conn.close();
    }
}

在上面的代码中,我们使用while循环遍历ResultSet对象,其中rs.getInt(“id”)表示获取查询结果中id列的值,rs.getString(“name”)表示获取查询结果中name列的值,rs.getInt(“age”)表示获取查询结果中age列的值。

总结

本文介绍了在Java中连接MySQL数据库、执行SQL语句、以及读取结果等基本操作,同时介绍了使用Statement和PreparedStatement两种SQL语句执行方式。通过本文的学习,相信读者已经掌握了在Java中使用MySQL数据库的基本技能。

原创文章,作者:EMFL,如若转载,请注明出处:https://www.506064.com/n/142338.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
EMFLEMFL
上一篇 2024-10-11 11:41
下一篇 2024-10-11 11:41

相关推荐

  • Java JsonPath 效率优化指南

    本篇文章将深入探讨Java JsonPath的效率问题,并提供一些优化方案。 一、JsonPath 简介 JsonPath是一个可用于从JSON数据中获取信息的库。它提供了一种DS…

    编程 2025-04-29
  • java client.getacsresponse 编译报错解决方法

    java client.getacsresponse 编译报错是Java编程过程中常见的错误,常见的原因是代码的语法错误、类库依赖问题和编译环境的配置问题。下面将从多个方面进行分析…

    编程 2025-04-29
  • 如何修改mysql的端口号

    本文将介绍如何修改mysql的端口号,方便开发者根据实际需求配置对应端口号。 一、为什么需要修改mysql端口号 默认情况下,mysql使用的端口号是3306。在某些情况下,我们需…

    编程 2025-04-29
  • Java腾讯云音视频对接

    本文旨在从多个方面详细阐述Java腾讯云音视频对接,提供完整的代码示例。 一、腾讯云音视频介绍 腾讯云音视频服务(Cloud Tencent Real-Time Communica…

    编程 2025-04-29
  • Java Bean加载过程

    Java Bean加载过程涉及到类加载器、反射机制和Java虚拟机的执行过程。在本文中,将从这三个方面详细阐述Java Bean加载的过程。 一、类加载器 类加载器是Java虚拟机…

    编程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介绍

    本文将详细介绍Java Milvus SearchParam withoutFields的相关知识和用法。 一、什么是Java Milvus SearchParam without…

    编程 2025-04-29
  • Python栈操作用法介绍

    如果你是一位Python开发工程师,那么你必须掌握Python中的栈操作。在Python中,栈是一个容器,提供后进先出(LIFO)的原则。这篇文章将通过多个方面详细地阐述Pytho…

    编程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java语言中的一个版本,于2014年3月18日发布。本文将从多个方面对Java 8中某一周的周一进行详细的阐述。 一、数组处理 Java 8新特性之一是Stream…

    编程 2025-04-29
  • Python 常用数据库有哪些?

    在Python编程中,数据库是不可或缺的一部分。随着互联网应用的不断扩大,处理海量数据已成为一种趋势。Python有许多成熟的数据库管理系统,接下来我们将从多个方面介绍Python…

    编程 2025-04-29
  • Java判断字符串是否存在多个

    本文将从以下几个方面详细阐述如何使用Java判断一个字符串中是否存在多个指定字符: 一、字符串遍历 字符串是Java编程中非常重要的一种数据类型。要判断字符串中是否存在多个指定字符…

    编程 2025-04-29

发表回复

登录后才能评论