📜  如何使用 JDBC 连接向表中插入记录?

📅  最后修改于: 2022-05-13 01:55:51.086000             🧑  作者: Mango

如何使用 JDBC 连接向表中插入记录?

在表中插入内容之前,我们需要将我们的Java应用程序连接到我们的数据库。 Java有自己的 API,其中 JDBC API 使用 JDBC 驱动程序进行数据库连接。在 JDBC 之前,使用 ODBC API 但它是用 C 编写的,这意味着它是平台相关的。 JDBC API 提供应用程序到 JDBC 的连接,JDBC 驱动程序提供管理器到驱动程序的连接。

Java程序与数据库连接的步骤

1. 加载驱动程序:首先,您需要先加载驱动程序或注册它,然后才能在程序中使用它。注册将在您的程序中完成一次。您可以通过以下两种方式之一注册驱动程序:

  • Class.forName():这里我们在运行时将驱动程序的类文件加载到内存中。无需使用 new 或创建对象。以下示例使用 Class.forName() 加载 Oracle 驱动程序 –
Class.forName(“oracle.jdbc.driver.OracleDriver”);
  • DriverManager.registerDriver(): DriverManager 是一个带有静态成员寄存器的Java内置类。这里我们在编译时调用驱动类的构造函数。以下示例使用 DriverManager.registerDriver() 来注册 Oracle 驱动程序 –
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver())

2. 创建连接:加载驱动程序后,使用以下命令建立连接:

Connection con = DriverManager.getConnection(url,user,password)

用户:可以访问 SQL 命令提示符的用户名。
密码:可以访问 SQL 命令提示符的密码。

con:是对 Connection 接口的引用。
url :统一资源定位器。它可以按如下方式创建:

String url = “ jdbc:oracle:thin:@localhost:1521:xe”

其中 oracle 是使用的数据库,thin 是使用的驱动程序,@localhost 是存储数据库的 IP 地址,1521 是端口号,xe 是服务提供者。以上3个参数都是String类型,需要程序员在调用函数前声明。这个的使用可以参考最终代码。

3. 创建语句:一旦建立连接,您就可以与数据库进行交互。 JDBCStatementCallableStatementPreparedStatement接口定义了使您能够发送 SQL 命令和从数据库接收数据的方法。

JDBC Statement 的使用如下:

Statement st = con.createStatement();

这里, con是对上一步中使用的 Connection 接口的引用。

4. 执行查询:现在是执行查询的最重要部分。这里的查询是一个 SQL 查询。现在我们知道我们可以有多种类型的查询。其中一些如下:

  • 查询更新/插入数据库中的表。
  • 查询检索数据。

Statement 接口的 executeQuery() 方法用于执行从数据库中检索值的查询。此方法返回 ResultSet 的对象,可用于获取表的所有记录。
语句接口的executeUpdate(SQL query)方法用于执行更新/插入查询。

例子:

int m = st.executeUpdate(sql);
if (m==1)
    System.out.println("inserted successfully : "+sql);
else
    System.out.println("insertion failed");

这里的 SQL 是字符串类型的 SQL 查询

5. 关闭连接:所以最后我们已经将数据发送到指定位置,现在我们即将完成我们的任务。通过关闭连接,Statement 和 ResultSet 的对象将自动关闭。 Connection 接口的 close() 方法用于关闭连接。

例子:

con.close();
Java
// Java program to insert records to a table using JDBC
  
import java.io.*;
import java.sql.*;
  
public class Database {
  
    // url that points to mysql database, 'db' is database
    // name
    static final String url
        = "jdbc:mysql://localhost:3306/db";
  
    public static void main(String[] args)
        throws ClassNotFoundException
    {
        try {
            // this Class.forName() method is user for
            // driver registration with name of the driver
            // as argument
  
            // we have used MySQL driver
            Class.forName("com.mysql.jdbc.Driver");
  
            // getConnection() establishes a connection. It
            // takes url that points to your database,
            // username and password of MySQL connections as
            // arguments
            Connection conn = DriverManager.getConnection(
                url, "root", "1234");
  
            // create.Statement() creates statement object
            // which is responsible for executing queries on
            // table
            Statement stmt = conn.createStatement();
  
            // executeUpdate() is used for INSERT, UPDATE,
            // DELETE statements.It returns number of rows
            // affected by the execution of the statement
            int result = stmt.executeUpdate(
                "insert into student(Id,name,number) values('1','rachel','45')");
  
            // if result is greater than 0, it means values
            // has been added
            if (result > 0)
                System.out.println("successfully inserted");
  
            else
                System.out.println(
                    "unsucessful insertion ");
  
            // closing connection
            conn.close();
        }
  
        catch (SQLException e) {
            System.out.println(e);
        }
    }
}


Driver、DriverManager()、Connection()、Statement()、Resultset() 是JDBC API 提供的类。

  • 如果插入成功,输出将是:成功插入
  • 如果插入不成功,输出将是:unsuccessful insert

插入记录