Java 执行 SQL 语句动态插入数据

Java 是一种广泛应用于开发各种类型应用程序的高级编程语言。在很多应用程序中,我们经常需要与数据库进行交互,包括插入、查询、更新和删除数据等操作。本文将介绍如何使用 Java 执行 SQL 语句动态插入数据到数据库中。

1. 前提条件

在开始之前,确保已经安装并配置了 Java Development Kit (JDK) 和一个数据库(如 MySQL)。同时,也需要导入适当的数据库驱动程序库,以便能够与数据库进行通信。

2. 连接到数据库

在 Java 中,我们可以使用 JDBC(Java Database Connectivity)来连接到数据库。首先,我们需要导入 JDBC 相关的包,并加载适当的数据库驱动程序。

import java.sql.*;

public class InsertDemo {
    public static void main(String[] args) {
        // 数据库连接信息
        String url = "jdbc:mysql://localhost:3306/mydatabase";
        String username = "root";
        String password = "password";

        // 加载数据库驱动
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

        // 建立数据库连接
        try {
            Connection connection = DriverManager.getConnection(url, username, password);
            System.out.println("成功连接到数据库");
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

以上代码首先导入了 java.sql 包,然后加载了 MySQL 的数据库驱动程序 com.mysql.jdbc.Driver。接着,通过调用 DriverManager.getConnection() 方法,我们建立了与数据库的连接。

3. 插入数据

在连接到数据库后,我们可以使用 SQL 语句来执行插入操作。为了动态插入数据,我们可以使用预编译的 SQL 语句,并使用占位符来表示要插入的值。

import java.sql.*;

public class InsertDemo {
    public static void main(String[] args) {
        // 数据库连接信息
        String url = "jdbc:mysql://localhost:3306/mydatabase";
        String username = "root";
        String password = "password";

        // 加载数据库驱动
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

        // 建立数据库连接
        try {
            Connection connection = DriverManager.getConnection(url, username, password);
            System.out.println("成功连接到数据库");

            // 插入数据
            String sql = "INSERT INTO users (name, age) VALUES (?, ?)";
            PreparedStatement statement = connection.prepareStatement(sql);
            statement.setString(1, "John Doe");
            statement.setInt(2, 25);
            statement.executeUpdate();

            // 提示插入成功
            System.out.println("插入数据成功");
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

在上述代码中,我们使用了 PreparedStatement 对象来执行插入操作。首先,我们定义了一个包含占位符的 SQL 语句 INSERT INTO users (name, age) VALUES (?, ?),然后通过调用 setString()setInt() 方法为占位符设置相应的值。最后,我们使用 executeUpdate() 方法来执行插入操作。

4. 关闭连接

在完成数据库操作后,我们应该及时关闭与数据库的连接,以释放资源。

import java.sql.*;

public class InsertDemo {
    public static void main(String[] args) {
        // 数据库连接信息
        String url = "jdbc:mysql://localhost:3306/mydatabase";
        String username = "root";
        String password = "password";

        // 加载数据库驱动
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

        // 建立数据库连接
        try {
            Connection connection = DriverManager.getConnection(url, username, password);
            System.out.println("成功连接到数据库");

            // 插入数据
            String sql = "INSERT INTO users (name, age) VALUES (?, ?)";
            PreparedStatement statement = connection.prepareStatement(sql);
            statement.setString(1, "John Doe");
            statement.setInt(2, 25);
            statement.executeUpdate();

            // 提示插入成功
            System.out.println("插入数据成功");

            // 关闭连接
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

在上述代码中,我们通过调用 connection.close() 方法来关闭与数据库的连接。这样可以确