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

yizhihongxing

我们知道,在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日

相关文章

  • java密钥交换算法DH定义与应用实例分析

    Java密钥交换算法DH定义与应用实例分析 什么是DH算法? DH全称是Diffie-Hellman密钥交换算法,是一种安全的密钥交换协议。该算法的基本思路是:两个通信方都选择一组数字作为私有密钥,然后通过数学运算得出一个公用密钥。由于计算过程需要在一定范围内生成大的素数和进行模幂运算等数学问题,因此DH算法是一种非常安全、不易被破解的密钥交换方式。 DH算…

    Java 2023年5月26日
    00
  • Maven如何打入依赖中指定的部分jar包

    Maven是一款常用的Java项目管理工具,能够自动化地完成项目构建、依赖管理等任务。有时候我们需要将一些指定的jar包打入到我们的项目中,这里将介绍如何使用Maven来实现这个功能。 步骤1:修改pom.xml文件 在Maven中,我们可以通过修改项目的pom.xml文件来指定要打入项目的jar包。以将“mysql-connector-java”这个jar…

    Java 2023年5月19日
    00
  • tomcat 6.0.20在一个机器上安装多个服务的方法

    下面是详细的过程: 1. 下载安装Tomcat 首先需要在机器上下载Tomcat并进行安装。可以从官网下载Tomcat的安装文件(http://tomcat.apache.org/),根据机器操作系统的不同选择32位/64位版本。下载完成后,双击运行安装程序,并按照提示进行安装。 2. 配置Tomcat服务 安装完成后,需要为Tomcat服务进行配置。配置文…

    Java 2023年5月19日
    00
  • mybatis log4j2打印sql+日志实例代码

    下面为您提供详细的攻略,包含以下内容: 环境准备 引入Log4j2依赖 配置Log4j2文件 在MyBatis中配置Log4j2 示例代码说明 环境准备 在进行Log4j2和MyBatis的整合之前,需要先准备好以下环境: JDK1.8及以上 Maven3.0及以上 MyBatis3.0及以上 Log4j2 引入Log4j2依赖 在pom.xml文件中引入L…

    Java 2023年6月2日
    00
  • Java泛型extends及super区别实例解析

    Java中的泛型可以指定一个类型参数,例如List,这表示这个List只能添加String类型的元素,否则编译器会报错。此外,泛型中还有一个重要的概念:泛型通配符。泛型通配符可以用来表示某个类的任意类型参数,例如List<?>,这表示这个List可以添加任意类型的元素。 当我们使用泛型通配符时,有时候需要限制可以添加的元素类型,这时可以使用ext…

    Java 2023年5月26日
    00
  • Mybatis实现动态增删改查功能的示例代码

    让我们来详细讲解”Mybatis实现动态增删改查功能的示例代码”的完整攻略吧。 1. 引入Mybatis-Plus依赖 首先,我们需要在项目中引入Mybatis-Plus的依赖。在pom.xml文件中添加以下内容: <dependency> <groupId>com.baomidou</groupId> <artif…

    Java 2023年5月20日
    00
  • 如何使用Spring-Test对Spring框架进行单元测试

    Spring-Test是一个Spring框架提供的测试工具,可以帮助我们方便的对Spring框架进行单元测试。下面将提供一个详细的攻略,讲解如何使用Spring-Test进行单元测试。 步骤一:添加依赖 在使用Spring-Test之前,需要在项目中添加Spring-Test依赖。如果使用Maven构建项目,可以在pom.xml文件中添加如下配置: <…

    Java 2023年5月19日
    00
  • JSP导出Excel文件的方法

    JSP导出Excel文件是一种常见的需求,在这里给出一个JSP导出Excel文件的完整攻略。 1. 准备工作 首先需要引入先关依赖。 jxl.jar (可从网络上下载):jxl是一款专门用于处理Excel文件的java类库,其中包含了读取和写入Excel文件等相关操作。 2. 导出Excel文件的主要过程 (1)定义数据集并填充数据 首先,我们需要定义一个要…

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