java操作mysql实现增删改查的方法

Java操作MySQL实现增删改查的方法完整攻略

1. 环境准备

在Java项目中,我们需要使用JDBC来操作MySQL数据库,因此需要引入MySQL的JDBC驱动包。以Maven项目为例,我们可以在pom.xml文件中加入以下依赖:

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

其中,groupIdartifactId分别指定了所需依赖的包名和包编号,version是MySQL JDBC驱动包的版本。

2. 连接数据库

在Java中连接MySQL数据库的方法,可以通过以下代码实现:

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

public class JdbcUtils {
    private static final String DRIVER_CLASS_NAME = "com.mysql.cj.jdbc.Driver";
    private static final String URL = "jdbc:mysql://localhost:3306/test";
    private static final String USERNAME = "root";
    private static final String PASSWORD = "123456";

    static {
        try {
            Class.forName(DRIVER_CLASS_NAME);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

    public static Connection getConnection() {
        Connection connection = null;
        try {
            connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return connection;
    }
}

在上面的代码中,DRIVER_CLASS_NAMEURLUSERNAMEPASSWORD分别表示MySQL驱动类名、数据库URL、用户名和密码。我们通过Class.forName方法加载驱动程序,然后通过DriverManager.getConnection方法获取数据库连接。

3. 实现增删改查

3.1. 实现插入数据

以下是使用Java代码向MySQL数据库中插入一条数据的示例:

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

public class UserDaoImpl implements UserDao {
    private Connection connection;

    public UserDaoImpl() {
        connection = JdbcUtils.getConnection();
    }

    @Override
    public boolean addUser(User user) {
        String sql = "INSERT INTO user(name, age, gender) VALUES(?, ?, ?)";
        boolean result = false;
        PreparedStatement statement = null;
        try {
            statement = connection.prepareStatement(sql);
            statement.setString(1, user.getName());
            statement.setInt(2, user.getAge());
            statement.setString(3, user.getGender());
            result = statement.executeUpdate() > 0;
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (statement != null) {
                    statement.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        return result;
    }
}

在上面的代码中,我们首先定义了一个SQL语句,并通过PreparedStatementsetXXX方法为占位符?填充实际数据,最后通过executeUpdate方法执行SQL语句,如果插入成功,则返回true;否则返回false

3.2. 实现更新数据

以下是使用Java代码更新MySQL数据库中的一条数据的示例:

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

public class UserDaoImpl implements UserDao {
    private Connection connection;

    public UserDaoImpl() {
        connection = JdbcUtils.getConnection();
    }

    @Override
    public boolean updateUser(User user) {
        String sql = "UPDATE user SET name = ?, age = ?, gender = ? WHERE id = ?";
        boolean result = false;
        PreparedStatement statement = null;
        try {
            statement = connection.prepareStatement(sql);
            statement.setString(1, user.getName());
            statement.setInt(2, user.getAge());
            statement.setString(3, user.getGender());
            statement.setInt(4, user.getId());
            result = statement.executeUpdate() > 0;
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (statement != null) {
                    statement.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        return result;
    }
}

在这段代码中,我们也是通过定义一个SQL语句,在PreparedStatement中为占位符填充数据,最后调用executeUpdate方法执行SQL语句,实现了对一条数据进行更新。

3.3. 实现删除数据

以下是使用Java代码从MySQL数据库删除一条数据的示例:

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

public class UserDaoImpl implements UserDao {
    private Connection connection;

    public UserDaoImpl() {
        connection = JdbcUtils.getConnection();
    }

    @Override
    public boolean deleteUser(int id) {
        String sql = "DELETE FROM user WHERE id = ?";
        boolean result = false;
        PreparedStatement statement = null;
        try {
            statement = connection.prepareStatement(sql);
            statement.setInt(1, id);
            result = statement.executeUpdate() > 0;
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (statement != null) {
                    statement.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        return result;
    }
}

如上所示,我们在SQL语句中使用了DELETE语句,并在PreparedStatement中为其中的占位符?填充了实际的数据,最后调用了executeUpdate方法实现数据的删除。

3.4. 查询数据

以下是使用Java代码从MySQL数据库中查询数据的示例:

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class UserDaoImpl implements UserDao {
    private Connection connection;

    public UserDaoImpl() {
        connection = JdbcUtils.getConnection();
    }

    @Override
    public List<User> queryUsers() {
        String sql = "SELECT * FROM user";
        List<User> userList = new ArrayList<>();
        PreparedStatement statement = null;
        ResultSet resultSet = null;
        try {
            statement = connection.prepareStatement(sql);
            resultSet = statement.executeQuery();
            while (resultSet.next()) {
                User user = new User();
                user.setId(resultSet.getInt("id"));
                user.setName(resultSet.getString("name"));
                user.setAge(resultSet.getInt("age"));
                user.setGender(resultSet.getString("gender"));
                userList.add(user);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (statement != null) {
                    statement.close();
                }
                if (resultSet != null) {
                    resultSet.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        return userList;
    }
}

在上面的代码中,我们定义SQL语句并通过executeQuery方法执行查询,得到一个ResultSet对象。接下来通过遍历结果集获取数据,最后将得到的数据添加到一个List中,返回这个List

4. 总结

上面的Java操作MySQL实现增删改查的方法完整攻略,通过简单的代码示例详细讲解了如何使用Java对MySQL进行数据库操作。在实际开发中,我们可以根据需要来编写对应的Java代码,来完成具体的数据库操作。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java操作mysql实现增删改查的方法 - Python技术站

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

相关文章

  • Struts 2 配置Action详解

    Struts 2 配置Action详解 在 Struts 2 中,Action 是一个处理请求的对象,负责接收来自用户的请求,并进行处理。配置 Action 是 Struts 2 中比较重要的一项任务,配置不当会导致程序无法正常工作或者存在安全隐患。本篇文章将详细讲解 Struts 2 中如何配置 Action。 配置 Struts 2 Action 在 S…

    Java 2023年5月20日
    00
  • JDK如何配置环境变量 JDK的安装与环境变量配置图文教程

    JDK如何配置环境变量 简介 JDK(Java Development Kit)是Java开发的核心环境,要想在计算机上开发和运行Java代码,必须先安装JDK,然后配置环境变量,才能在计算机上使用Java相关的软件或执行Java程序。 安装JDK 在JDK官网(https://www.oracle.com/java/technologies/javase-…

    Java 2023年5月26日
    00
  • SpringBoot应用启动过程分析

    “SpringBoot应用启动过程分析”是一个比较深入的话题。在这里,我们将简单介绍一下SpringBoot应用的启动过程及它的主要特点和作用。下面,我们按照以下步骤讲解: SpringBoot应用的主要特点和作用 SpringBoot应用的启动流程 SpringBoot应用的启动过程分析 两条示例 总结 1. SpringBoot应用的主要特点和作用 Sp…

    Java 2023年5月15日
    00
  • java使用jdbc连接数据库简单实例

    Java使用JDBC连接数据库简单实例 在Java中,我们通过JDBC(Java Database Connectivity) API来连接数据库。这里简单介绍一下如何使用JDBC连接数据库。 步骤 下载并安装数据库驱动程序。不同的数据库具有不同的驱动程序,请根据实际情况选择。 加载驱动程序,可以通过Class.forName()方法进行加载 java Cl…

    Java 2023年5月19日
    00
  • Java中ArrayList初始化的四种方法详解

    Java中ArrayList初始化的四种方法详解 在Java开发中,我们常常需要使用到集合类,其中一个比较常用的集合类就是ArrayList。ArrayList是Java中的动态数组,有着查询快,插入,删除效率低的特性。在使用ArrayList之前,需要对其进行初始化。下面,我们就来详细讲解一下Java中ArrayList初始化的四种方法。 1. 基本初始化…

    Java 2023年5月26日
    00
  • 详解Java Synchronized的实现原理

    接下来我就为您详细讲解“详解Java Synchronized的实现原理”的攻略。 标题:详解Java Synchronized的实现原理 一、基本概念 首先,我们需要了解Java Synchronized的基本概念。在Java中,Synchronized是一种同步机制,可以防止多个线程同时访问一个特定的代码块,从而避免数据不一致的问题。 二、内部原理 具体…

    Java 2023年5月26日
    00
  • JavaScript学习笔记整理_setTimeout的应用

    首先让我们来详细讲解“JavaScript学习笔记整理_setTimeout的应用”这个主题的完整攻略。 简介 setTimeout() 是 JavaScript 的一个函数,它可以在一定时间后执行指定的函数或代码。通过 setTimeout() 函数,我们可以实现倒计时、延迟显示等功能。 语法 setTimeout() 函数的语法如下: setTimeou…

    Java 2023年6月15日
    00
  • java高效打印一个二维数组的实例(不用递归,不用两个for循环)

    首先,需要说明的是,题目本身有些矛盾。要高效地打印二维数组,通常需要使用循环,而对于这道题目,又要求不使用两个for循环,因此实现起来会比较有一定的难度。 下面是几种不同的实现方式。 方法一:使用Arrays.deepToString()方法 Arrays类中提供了一个非常方便的方法deepToString(),可以直接把一个多维数组转化为字符串形式,非常方…

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