- JDBC 教程
- JDBC - 首页
- JDBC - 简介
- JDBC - SQL 语法
- JDBC - 环境
- JDBC - 示例代码
- JDBC - 驱动程序类型
- JDBC - 连接
- JDBC - 语句
- JDBC - 结果集
- JDBC - 数据类型
- JDBC - 事务
- JDBC - 异常
- JDBC - 批处理
- JDBC - 存储过程
- JDBC - 数据流
- JDBC - RowSet
- JDBC - 复制数据库
- JDBC - ACID 属性
- JDBC - 连接池
- JDBC 示例
- JDBC - 创建数据库
- JDBC - 选择数据库
- JDBC - 删除数据库
- JDBC - 创建表
- JDBC - 删除表
- JDBC - 插入记录
- JDBC - 选择记录
- JDBC - 更新记录
- JDBC - 删除记录
- JDBC - WHERE 子句
- JDBC - LIKE 子句
- JDBC - 数据排序
- JDBC 有用资源
- JDBC - 常见问题解答
- JDBC - 快速指南
- JDBC - 有用资源
- JDBC - 讨论
- 有用 - Java 教程
JDBC - 插入记录
本章提供了一些示例,说明如何使用 JDBC 应用程序在表中插入记录、插入多条记录以及使用 select 查询插入记录。在执行以下示例之前,请确保您已准备好以下内容:
要执行以下示例,您可以将用户名和密码替换为您实际的用户名和密码。
您的 MySQL 或您正在使用的任何数据库都已启动并正在运行。
必要步骤
使用 JDBC 应用程序创建新数据库需要以下步骤:
导入包 - 需要包含用于数据库编程的 JDBC 类所在的包。大多数情况下,使用import java.sql.*就足够了。
注册 JDBC 驱动程序 - 需要初始化一个驱动程序,以便您可以打开与数据库的通信通道。
打开连接 - 需要使用DriverManager.getConnection()方法创建一个 Connection 对象,该对象表示与数据库服务器的物理连接。
执行查询 - 需要使用 Statement 类型的对象来构建和提交 SQL 语句,以将记录插入表中。
清理环境 try with resources 会自动关闭资源。
示例:在表中插入记录
在此示例中,我们有三个静态字符串,包含数据库连接 URL、用户名和密码。现在,使用 DriverManager.getConnection() 方法,我们准备了一个数据库连接。连接准备就绪后,我们使用 createStatement() 方法准备了一个 Statement 对象。下一步,我们准备了一个 SQL 字符串,用于将记录插入 REGISTRATION 表中,并通过调用 statement.executeUpdate() 方法将记录插入数据库。此后,我们更新了 SQL 字符串以插入更多新记录,并使用 executeUpdate() 方法逐个插入所有记录。
如果在连接到数据库时出现任何异常,catch 块将处理 SQLException 并打印堆栈跟踪。
复制并粘贴以下示例到 JDBCExample.java 中,编译并运行如下:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; public class JDBCExample { static final String DB_URL = "jdbc:mysql://127.0.0.1/TUTORIALSPOINT"; static final String USER = "guest"; static final String PASS = "guest123"; public static void main(String[] args) { // Open a connection try(Connection conn = DriverManager.getConnection(DB_URL, USER, PASS); Statement stmt = conn.createStatement(); ) { // Execute a query System.out.println("Inserting records into the table..."); String sql = "INSERT INTO Registration VALUES (100, 'Zara', 'Ali', 18)"; stmt.executeUpdate(sql); sql = "INSERT INTO Registration VALUES (101, 'Mahnaz', 'Fatma', 25)"; stmt.executeUpdate(sql); sql = "INSERT INTO Registration VALUES (102, 'Zaid', 'Khan', 30)"; stmt.executeUpdate(sql); sql = "INSERT INTO Registration VALUES(103, 'Sumit', 'Mittal', 28)"; stmt.executeUpdate(sql); System.out.println("Inserted records into the table..."); } catch (SQLException e) { e.printStackTrace(); } } }
现在让我们编译上述示例,如下所示:
C:\>javac JDBCExample.java C:\>
运行JDBCExample时,它会产生以下结果:
C:\>java JDBCExample Inserting records into the table... Inserted records into the table... C:\>
示例:在表中使用单个语句插入记录
在此示例中,我们有三个静态字符串,包含数据库连接 URL、用户名和密码。现在,使用 DriverManager.getConnection() 方法,我们准备了一个数据库连接。连接准备就绪后,我们使用 createStatement() 方法准备了一个 Statement 对象。下一步,我们准备了一个 SQL 字符串,用于一次性将多条记录插入 sampledb4 表中,并通过调用 statement.execute() 方法将记录插入数据库。此后,我们运行了一个 select 查询以读取表中的所有记录并打印出来。
如果在连接到数据库时出现任何异常,catch 块将处理 SQLException 并打印堆栈跟踪。
复制并粘贴以下示例到 JDBCExample.java 中,编译并运行如下:
import java.sql.*; // This class demonstrates use of multiple inserts within a single SQL public class JDBCExample { static final String DB_URL = "jdbc:mysql://127.0.0.1/TUTORIALSPOINT"; static final String USER = "root"; static final String PASS = "guest123"; public static void main(String args[]) { try{ Connection conn = DriverManager.getConnection(DB_URL, USER, PASS); Statement stmt = conn.createStatement(); stmt.execute("INSERT INTO sampledb4(id, name) VALUES(3, 'Sachin'), (4, 'Kishore')"); System.out.println("----- Successfully inserted into table sampledb4 ----\n\n"); System.out.println("Displaying records from sampledb4 table, showing inserted values"); System.out.println("---------------------------"); ResultSet rs = stmt.executeQuery("select * from sampledb4"); while(rs.next()){ System.out.println("id: " + rs.getInt(1)); System.out.println("name: " + rs.getString(2)); } }catch(SQLException e){ e.printStackTrace(); } } }
现在让我们编译上述示例,如下所示:
C:\>javac JDBCExample.java C:\>
运行JDBCExample时,它会产生以下结果:
C:\>java JDBCExample ----- Successfully inserted into table sampledb4 ---- Displaying records from sampledb4 table, showing inserted values --------------------------- id: 3 name: Sachin id: 4 name: Kishore C:\>
示例:使用 Select 语句在表中插入记录
在此示例中,我们有三个静态字符串,包含数据库连接 URL、用户名和密码。现在,使用 DriverManager.getConnection() 方法,我们准备了一个数据库连接。连接准备就绪后,我们使用 createStatement() 方法准备了一个 Statement 对象。下一步,我们准备了一个 SQL 字符串,用于使用 select 查询将记录插入 sampledb4 表中,并通过调用 statement.execute() 方法将记录插入数据库。此后,我们运行了一个 select 查询以读取表中的所有记录并打印出来。
如果在连接到数据库时出现任何异常,catch 块将处理 SQLException 并打印堆栈跟踪。
复制并粘贴以下示例到 JDBCExample.java 中,编译并运行如下:
import java.sql.*; // This class demonstrates use of INSERT..SELECT SQL, //where data is inserted in table using select from another table. public class JDBCExample { static final String DB_URL = "jdbc:mysql://127.0.0.1/TUTORIALSPOINT"; static final String USER = "root"; static final String PASS = "guest123"; public static void main(String args[]) { try{ Connection conn = DriverManager.getConnection(DB_URL, USER, PASS); Statement stmt = conn.createStatement(); // Data from students table (student id, first name) is inserted into sampledb4(id, name) String ins_sel = "insert into sampledb4(id, name) select studentid," +" firstname from students where studentid > 1004"; stmt.executeUpdate(ins_sel); ResultSet rs = stmt.executeQuery("select * from sampledb4 "); System.out.println("Displaying records of table sampledb4/ Ids" +" greater than 1004 are from students table"); System.out.println("--------------------------------------"); while(rs.next()){ System.out.print("id: " + rs.getInt(1)); System.out.println(" name: " + rs.getString(2)); } }catch(SQLException e){ e.printStackTrace(); } } }
现在让我们编译上述示例,如下所示:
C:\>javac JDBCExample.java C:\>
运行JDBCExample时,它会产生以下结果:
C:\>java JDBCExample Displaying records of table sampledb4/ Ids greater than 1004 are from students table -------------------------------------- id: 3 name: Sachin id: 4 name: Kishore id: 1005 name: Kishore id: 1006 name: Ganesh C:\>