Java连接MySQL数据库增删改查的通用方法(推荐)

我们知道,在Java应用中经常需要使用到MySQL数据库。而在使用MySQL数据库时,常见的操作就是增删改查。本文就来详细讲解如何通过Java程序连接MySQL数据库并实现增删改查操作。

1. 准备工作

在开始使用Java连接MySQL数据库之前,需要进行一些准备工作:

  • 下载并安装MySQL数据库,创建数据库及数据表;
  • 下载并配置MySQL数据库的JDBC驱动;
  • 配置Java程序连接MySQL数据库的参数,如数据库地址、用户名、密码等。

这里不再详细讲解具体的步骤,读者可自行了解相关知识。

2. 连接MySQL数据库

在Java中,我们使用JDBC技术连接MySQL数据库。连接MySQL数据库的代码如下:

public static Connection getConnection() {
    Connection conn = null;
    String url = "jdbc:mysql://localhost:3306/test"; // 数据库地址
    String user = "root";                            // 用户名
    String password = "123456";                      // 密码
    try {
        // 加载MySQL驱动程序
        Class.forName("com.mysql.jdbc.Driver");
        // 获取数据库连接
        conn = DriverManager.getConnection(url, user, password);
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return conn;
}

其中,需要注意jdbc:mysql://localhost:3306/test中,localhost表示数据库所在的主机IP地址,3306表示MySQL服务的端口号,test表示所要连接的数据库名称。

3. 增删改查操作

一般来说,我们有四种常见的操作,即增(INSERT)、删(DELETE)、改(UPDATE)和查(SELECT)。下面分别介绍这四种操作的实现方法。

3.1 插入数据(INSERT)

向MySQL数据库插入数据的代码如下:

public static void insert() {
    Connection conn = getConnection();
    PreparedStatement pstmt = null;
    try {
        String sql = "INSERT INTO users(username,password,email) VALUES(?,?,?)";
        pstmt = conn.prepareStatement(sql);
        pstmt.setString(1, "张三");
        pstmt.setString(2, "123456");
        pstmt.setString(3, "zhangsan@qq.com");
        int result = pstmt.executeUpdate();
        System.out.println(result > 0 ? "插入成功!" : "插入失败!");
    } catch (SQLException e) {
        e.printStackTrace();
    } finally {
        try {
            pstmt.close();
            conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

上述代码中,首先获取数据库连接,然后通过PreparedStatement对象执行SQL语句,最后关闭PreparedStatement对象和数据库连接。

3.2 删除数据(DELETE)

从MySQL数据库中删除数据的代码如下:

public static void delete() {
    Connection conn = getConnection();
    PreparedStatement pstmt = null;
    try {
        String sql = "DELETE FROM users WHERE username=?";
        pstmt = conn.prepareStatement(sql);
        pstmt.setString(1, "张三");
        int result = pstmt.executeUpdate();
        System.out.println(result > 0 ? "删除成功!" : "删除失败!");
    } catch (SQLException e) {
        e.printStackTrace();
    } finally {
        try {
            pstmt.close();
            conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

上述代码中,首先获取数据库连接,然后通过PreparedStatement对象执行SQL语句,最后关闭PreparedStatement对象和数据库连接。

3.3 更新数据(UPDATE)

更新MySQL数据库中的数据的代码如下:

public static void update() {
    Connection conn = getConnection();
    PreparedStatement pstmt = null;
    try {
        String sql = "UPDATE users SET password=? WHERE username=?";
        pstmt = conn.prepareStatement(sql);
        pstmt.setString(1, "654321");
        pstmt.setString(2, "张三");
        int result = pstmt.executeUpdate();
        System.out.println(result > 0 ? "更新成功!" : "更新失败!");
    } catch (SQLException e) {
        e.printStackTrace();
    } finally {
        try {
            pstmt.close();
            conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

上述代码中,首先获取数据库连接,然后通过PreparedStatement对象执行SQL语句,最后关闭PreparedStatement对象和数据库连接。

3.4 查询数据(SELECT)

在MySQL数据库中查询数据的代码如下:

public static void select() {
    Connection conn = getConnection();
    PreparedStatement pstmt = null;
    ResultSet rs = null;
    try {
        String sql = "SELECT * FROM users WHERE username=?";
        pstmt = conn.prepareStatement(sql);
        pstmt.setString(1, "张三");
        rs = pstmt.executeQuery();
        while (rs.next()) {
            System.out.println("用户名:" + rs.getString("username"));
            System.out.println("密码:" + rs.getString("password"));
            System.out.println("邮箱:" + rs.getString("email"));
        }
    } catch (SQLException e) {
        e.printStackTrace();
    } finally {
        try {
            rs.close();
            pstmt.close();
            conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

上述代码中,首先获取数据库连接,然后通过PreparedStatement对象执行SQL语句,最后遍历ResultSet对象获取查询结果,最后关闭ResultSet对象、PreparedStatement对象和数据库连接。

4. 示例

下面给出完整的示例代码:

import java.sql.*;

public class MySQLUtils {
    public static Connection getConnection() {
        Connection conn = null;
        String url = "jdbc:mysql://localhost:3306/test"; // 数据库地址
        String user = "root";                            // 用户名
        String password = "123456";                      // 密码
        try {
            // 加载MySQL驱动程序
            Class.forName("com.mysql.jdbc.Driver");
            // 获取数据库连接
            conn = DriverManager.getConnection(url, user, password);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return conn;
    }

    public static void insert() {
        Connection conn = getConnection();
        PreparedStatement pstmt = null;
        try {
            String sql = "INSERT INTO users(username,password,email) VALUES(?,?,?)";
            pstmt = conn.prepareStatement(sql);
            pstmt.setString(1, "张三");
            pstmt.setString(2, "123456");
            pstmt.setString(3, "zhangsan@qq.com");
            int result = pstmt.executeUpdate();
            System.out.println(result > 0 ? "插入成功!" : "插入失败!");
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                pstmt.close();
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

    public static void delete() {
        Connection conn = getConnection();
        PreparedStatement pstmt = null;
        try {
            String sql = "DELETE FROM users WHERE username=?";
            pstmt = conn.prepareStatement(sql);
            pstmt.setString(1, "张三");
            int result = pstmt.executeUpdate();
            System.out.println(result > 0 ? "删除成功!" : "删除失败!");
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                pstmt.close();
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

    public static void update() {
        Connection conn = getConnection();
        PreparedStatement pstmt = null;
        try {
            String sql = "UPDATE users SET password=? WHERE username=?";
            pstmt = conn.prepareStatement(sql);
            pstmt.setString(1, "654321");
            pstmt.setString(2, "张三");
            int result = pstmt.executeUpdate();
            System.out.println(result > 0 ? "更新成功!" : "更新失败!");
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                pstmt.close();
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

    public static void select() {
        Connection conn = getConnection();
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        try {
            String sql = "SELECT * FROM users WHERE username=?";
            pstmt = conn.prepareStatement(sql);
            pstmt.setString(1, "张三");
            rs = pstmt.executeQuery();
            while (rs.next()) {
                System.out.println("用户名:" + rs.getString("username"));
                System.out.println("密码:" + rs.getString("password"));
                System.out.println("邮箱:" + rs.getString("email"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                rs.close();
                pstmt.close();
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

    public static void main(String[] args) {
        insert(); // 插入数据
        delete(); // 删除数据
        update(); // 更新数据
        select(); // 查询数据
    }
}

本文介绍了Java连接MySQL数据库的常见操作方法,通过示例代码示范了增、删、改、查的具体实现方式。对于初学者而言,这些操作是非常基础的操作,掌握之后能够为日后的工作打下坚实的基础。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java连接MySQL数据库增删改查的通用方法(推荐) - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • SpringBoot项目实现关闭数据库配置和springSecurity

    SpringBoot是一个非常流行的Java Web开发框架,它具有易用、快速开发、健壮性好等优点。在一些场景中我们需要关闭数据库配置或者关闭Spring Security,下面就具体介绍一下如何实现: 关闭数据库配置 在一些场景中,我们并不需要使用数据库,比如开发一个展示页面的网站,这时我们就可以关闭数据库配置。 步骤一:排除数据库依赖 在pom.xml文…

    Java 2023年5月20日
    00
  • Java 实战范例之员工管理系统的实现

    Java 实战范例之员工管理系统的实现攻略 1. 系统需求分析 1.1. 员工信息管理模块 根据需求分析,该员工管理系统需要提供对员工信息的增、删、改、查、排序等操作,并能够将员工信息保存在文件中。 1.2. 打印报表模块 该系统还需要提供打印报表的功能,可以根据不同的条件查询员工信息并打印报表。 2. 系统设计 2.1. 类的设计 需要设计Employee…

    Java 2023年5月19日
    00
  • java环境变量的配置方法图文详解【win10环境为例】

    Java环境变量的配置方法图文详解(Win10环境为例) Java编程利用JDK和JRE提供的库来开发和运行Java程序。在安装Java后,要配置Java环境变量,才能在命令行模式下运行Java程序。 下面是Java环境变量在Win10环境下的配置方法: 1. 下载JDK 首先,从官网上下载对应平台的JDK安装包。 示例说明:下载JDK8u291 Windo…

    Java 2023年5月23日
    00
  • Spring Security实现用户名密码登录详解

    下面是Spring Security实现用户名密码登录的详细攻略: 实现步骤 1. 添加Spring Security的Maven依赖 在项目的pom.xml文件中添加以下Maven依赖。 <dependency> <groupId>org.springframework.boot</groupId> <artifa…

    Java 2023年5月20日
    00
  • java 定义长度为0的数组/空数组案例

    一、什么是空数组 空数组指的是数组对象中没有存储元素的情况,即数组的长度为0,主要应用于数组初始化时需要定义长度但并不需要实际存储元素的场景。 二、如何定义长度为0的数组 在Java中,我们可以使用两种方式来定义一个长度为0的数组: 1.使用new方式定义长度为0的数组 // 定义长度为0的int类型数组 int[] array1 = new int[0];…

    Java 2023年5月26日
    00
  • Hibernate中load方法与get方法的区别

    Hibernate中load方法与get方法的区别是开发人员在进行对象查询时最常见的问题之一,下面是一份详细的攻略,希望对您有所帮助。 1. 背景知识 在开始分析两个方法的区别前,先了解几个概念。 1.1 Hibernate中的Session 在Hibernate框架中,Session是与数据库交互的重要对象,它提供了对数据库的增删改查等操作。 1.2 对象…

    Java 2023年5月20日
    00
  • SpringBoot + SpringSecurity 环境搭建的步骤

    让我来详细讲解一下SpringBoot和SpringSecurity环境搭建的步骤。 步骤一:创建SpringBoot项目 首先我们需要创建一个SpringBoot项目。如果你已经有了一个SpringBoot项目,你可以跳过这个步骤。 在创建项目时,我们需要选择Spring Web、Spring Security和Thymeleaf这三个依赖。示例代码如下:…

    Java 2023年6月3日
    00
  • 详解springMVC两种方式实现多文件上传及效率比较

    详解 Spring MVC 两种方式实现多文件上传及效率比较 本文将详细讲解 Spring MVC 两种不同的实现多文件上传的方式,并对其效率进行比较。示例代码为基于 Maven 的 Spring MVC 项目。 前置条件 JDK 1.8 或以上版本 Maven Servlet 3.0 或以上版本 Spring MVC 4.3 或以上版本 两种上传方式 Sp…

    Java 2023年6月16日
    00
合作推广
合作推广
分享本页
返回顶部