• 【Java 进阶篇】JDBC插入数据详解


    在这里插入图片描述

    在Java应用程序中,与数据库交互是一项常见的任务。其中,插入数据操作是一种基本的数据库操作之一。本文将详细介绍如何使用Java JDBC(Java Database Connectivity)来执行插入数据操作。无论您是初学者还是有一定经验的开发人员,都能从本文中获得有关插入数据的重要信息。

    什么是插入数据?

    在数据库术语中,插入数据是指将新的数据行添加到数据库表中的操作。这可以是将完全新的数据插入到表中,也可以是更新表中已有的数据。

    使用JDBC插入数据的基本步骤

    在开始之前,确保您已经设置了Java开发环境,并且已经安装了适当的数据库。我们将以MySQL数据库为例进行说明,但类似的步骤也适用于其他数据库系统。

    步骤1:导入JDBC库

    首先,您需要导入JDBC库,以便在Java程序中使用数据库功能。通常,您会下载并使用数据库供应商提供的JDBC驱动程序。以下是一些常见的JDBC库导入语句示例:

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    • 1
    • 2
    • 3
    • 4

    步骤2:建立数据库连接

    在插入数据之前,您需要建立与数据库的连接。通常,您需要提供数据库的URL、用户名和密码。以下是建立MySQL数据库连接的示例代码:

    public class JDBCDemo {
        public static void main(String[] args) {
            // JDBC连接参数
            String url = "jdbc:mysql://localhost:3306/mydatabase";
            String username = "root";
            String password = "password";
    
            try {
                // 建立数据库连接
                Connection connection = DriverManager.getConnection(url, username, password);
    
                // 在此处执行插入数据操作
    
                // 关闭连接
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    步骤3:创建SQL插入语句

    接下来,您需要创建一个SQL插入语句,以指定要插入的数据和目标表。SQL插入语句通常采用以下格式:

    INSERT INTO table_name (column1, column2, column3, ...)
    VALUES (value1, value2, value3, ...);
    
    • 1
    • 2

    在上述SQL语句中,table_name是目标表的名称,column1column2等是要插入数据的列名,value1value2等是要插入的实际数据值。

    步骤4:执行插入数据操作

    要执行插入数据操作,您需要创建一个Statement对象,并使用它来执行SQL插入语句。以下是一个示例代码:

    try {
        // 创建Statement对象
        Statement statement = connection.createStatement();
    
        // 创建SQL插入语句
        String sql = "INSERT INTO employees (name, salary) VALUES ('John', 50000)";
    
        // 执行SQL插入语句
        int rowsAffected = statement.executeUpdate(sql);
    
        if (rowsAffected > 0) {
            System.out.println("Insertion successful. Rows affected: " + rowsAffected);
        } else {
            System.out.println("Insertion failed.");
        }
    
        // 关闭Statement
        statement.close();
    } catch (SQLException e) {
        e.printStackTrace();
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    在上述代码中,我们创建了一个Statement对象,然后使用executeUpdate()方法执行SQL插入语句。通过检查rowsAffected变量,我们可以确定是否插入成功。

    步骤5:关闭连接

    最后,在插入数据操作完成后,不要忘记关闭数据库连接。这是释放资源和确保数据库安全性的重要步骤。

    connection.close();
    
    • 1

    防止SQL注入攻击

    在执行SQL插入操作时,务必注意防止SQL注入攻击。SQL注入攻击是一种恶意操作,通过在输入数据中注入恶意SQL代码,来绕过应用程序的安全措施,访问或破坏数据库。

    为了防止SQL注入攻击,您应该使用参数化的SQL语句或预编译的语句。以下是一个使用预编译语句的示例:

    try {
        // 创建预编译的SQL插入语句
        String sql = "INSERT INTO employees (name, salary) VALUES (?, ?)";
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
    
        // 设置参数的值
        preparedStatement.setString(1, "John");
        preparedStatement.setInt(2, 50000);
    
        // 执行预编译的语句
        int rowsAffected = preparedStatement.executeUpdate();
    
        if (rowsAffected > 0) {
            System.out.println("Insertion successful. Rows affected: " + rowsAffected);
        } else {
            System.out.println("Insertion failed.");
        }
    
        // 关闭PreparedStatement
        preparedStatement.close();
    } catch (SQLException e) {
        e.printStackTrace();
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    在上述示例中,我们使用了PreparedStatement对象,并使用占位符?来表示参数。然后,通过调用setXXX()方法设置参数的值,其中XXX表示参数的数据类型。这种方式可以有效地防止SQL注入攻击。

    异常处理

    在编写插入数据操作时,应该注意处理可能出现的异常。通常,与数据库交互的代码都会抛出SQLException,因此您应该使用try-catch块来捕获并处理这些异常。

    try {
        // 执行插入数据操作
    
    } catch (SQLException e) {
        e.printStackTrace();
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在异常处理块中,您可以根据具体情况采取适当的措施,例如记录日志、回滚事务或提供错误消息给用户。

    示例代码

    以下是一个完整的示例代码,演示了如何使用JDBC插入数据到MySQL数据库:

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    
    public class InsertDataExample {
        public static void main(String[] args) {
            // JDBC连接参数
            String url = "jdbc:mysql://localhost:3306/mydatabase";
            String username = "root";
            String password = "password";
    
            try {
                // 建立数据库连接
                Connection connection = DriverManager.getConnection(url, username, password);
    
                // 创建预编译的SQL插入语句
                String sql = "INSERT INTO employees (name, salary) VALUES (?, ?)";
                PreparedStatement preparedStatement = connection.prepareStatement(sql);
    
                // 设置参数的值
                preparedStatement.setString(1, "John");
                preparedStatement.setInt(2, 50000);
    
                // 执行预编译的语句
                int rowsAffected = preparedStatement.executeUpdate();
    
                if (rowsAffected > 0) {
                    System.out.println("Insertion successful. Rows affected: " + rowsAffected);
                } else {
                    System.out.println("Insertion failed.");
                }
    
                // 关闭连接和PreparedStatement
                preparedStatement.close();
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41

    请注意,上述代码中的数据库连接参数、表名、列名等应根据您的实际情况进行修改。

    这就是使用JDBC插入数据的基本步骤和示例。通过遵循这些步骤,您可以安全地将数据插入到数据库中,同时避免了常见的SQL注入攻击。希望这篇文章对您理解JDBC插入操作有所帮助!如果您有任何疑问或需要进一步的帮助,请随时提出。

    作者信息

    作者 : 繁依Fanyi
    CSDN: https://techfanyi.blog.csdn.net
    掘金:https://juejin.cn/user/4154386571867191
  • 相关阅读:
    柯桥留学日语培训机构有吗日本人平时都喝什么酒?
    Unixbench——2D图形性能测试方法及工具下载
    使用余弦算法计算向量相似性
    js控制全屏和取消全屏
    Java程序员容易踩中的6个坑(荣耀典藏版)
    linux服务器在没有网的条件下,怎么安装使用numpy呢
    Unity--互动组件(Scrollbar)||Unity--互动组件(DropDown )
    国内新闻媒体排行,如何邀约媒体现场造势?
    Apache ActiveMQ 远程代码执行漏洞影响范围
    漫谈:浮点数为什么很麻烦 金额究竟应该如何存储
  • 原文地址:https://blog.csdn.net/qq_21484461/article/details/133467710