Skip to content

插入

在使用 JDBC 进行数据插入时,您需要执行以下步骤:

  1. 建立数据库连接:使用 java.sql.Connection 类建立与数据库的连接。可以通过驱动程序管理器获取连接对象,例如:
String url = "jdbc:mysql://localhost:3306/mydatabase";
String username = "username";
String password = "password";

Connection connection = DriverManager.getConnection(url, username, password);

请确保将 url 替换为您自己的数据库连接 URL,并提供正确的用户名和密码。

  1. 创建插入语句:使用 SQL 语句创建插入语句,例如:
String sql = "INSERT INTO mytable (column1, column2, column3) VALUES (?, ?, ?)";

这是一个示例插入语句,其中 mytable 是要插入数据的表名,column1、column2 和 column3 是表中的列名。注意,在值的位置上我们使用了占位符(?),稍后会用实际的值进行替换。

  1. 创建 PreparedStatement 对象:使用 java.sql.PreparedStatement 类创建预编译的语句对象,并设置参数值,例如:
PreparedStatement statement = connection.prepareStatement(sql);
statement.setString(1, value1); // 设置第一个占位符的值
statement.setInt(2, value2);    // 设置第二个占位符的值
statement.setDouble(3, value3); // 设置第三个占位符的值

根据具体情况,调用适当的 setXXX 方法设置占位符的值。例如,如果第一个占位符是字符串类型,则使用 setString 方法;如果是整数类型,则使用 setInt 方法。

  1. 执行插入语句:调用 executeUpdate() 方法执行插入操作,并获取受影响的行数,例如:
int rowsAffected = statement.executeUpdate();

此方法返回一个整数,表示受影响的行数。如果返回值大于 0,则表示插入成功。 5. 关闭连接和语句对象:在完成数据库操作后,关闭连接和语句对象,释放资源,例如:

statement.close();
connection.close();

这些是使用 JDBC 进行数据插入的基本步骤。请注意,在实际应用中,您可能还需要处理异常、事务等情况,以及根据具体需求进行适当的修改和扩展。

插入并获取主键

要插入数据并获取生成的主键,你可以使用 JDBC 的 Statement 或 PreparedStatement 对象的一些特定方法。这取决于你所使用的数据库和相应的驱动程序支持的功能。

下面是一个示例代码,演示如何在插入数据后获取自动生成的主键:

import java.sql.*;

public class InsertAndGetPrimaryKeyExample {
    public static void main(String[] args) {
        String url = "jdbc:mysql://localhost:3306/mydatabase";
        String username = "your-username";
        String password = "your-password";

        try (Connection connection = DriverManager.getConnection(url, username, password)) {
            // 创建插入语句,并指定返回生成的主键
            String sql = "INSERT INTO mytable (column1, column2) VALUES (?, ?)";
            PreparedStatement statement = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);

            // 设置参数值
            statement.setString(1, "value1");
            statement.setString(2, "value2");

            // 执行插入操作
            int rowsAffected = statement.executeUpdate();

            if (rowsAffected > 0) {
                // 获取生成的主键
                ResultSet generatedKeys = statement.getGeneratedKeys();
                if (generatedKeys.next()) {
                    long primaryKey = generatedKeys.getLong(1);
                    System.out.println("插入成功,生成的主键为:" + primaryKey);
                }
            } else {
                System.out.println("插入失败!");
            }

            // 关闭连接和语句对象
            statement.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

在上述代码中,我们首先创建了一个带有占位符的插入语句,并使用Statement.RETURN_GENERATED_KEYS参数来指定返回生成的主键。然后,我们设置占位符的值并执行插入操作。

如果插入成功(即受影响的行数大于0),我们通过调用getGeneratedKeys()方法获取生成的主键的结果集。接下来,我们可以使用 ResultSet 对象来访问生成的主键值。

请确保将示例代码中的 url、username 和 password 替换为适合你数据库的正确值,并替换 mytable 和 column1、column2 为你自己的表和列名。更新、删除操作和插入操作在JDBC代码的层面上实际上没有区别。