关键词

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数据库的常见操作方法,通过示例代码示范了增、删、改、查的具体实现方式。对于初学者而言,这些操作是非常基础的操作,掌握之后能够为日后的工作打下坚实的基础。

本文链接:http://task.lmcjl.com/news/3376.html

展开阅读全文