在 Java 中,使用 JDBC 插入數據到 MySQL 數據庫是非常常見的操作。以下是一個詳細的步驟,展示如何使用 JDBC 插入數據到 MySQL 數據庫。
### 一、準備工作
#### 1. 下載并安裝 MySQL
如果您還沒有安裝 MySQL,可以從 MySQL 官方網站下載并安裝:
- [MySQL 下載頁面](https://dev.mysql.com/downloads/mysql/)
#### 2. 創建數據庫和表
在 MySQL 中創建一個數據庫和表,用于存儲插入的數據。例如,創建一個名為 `testdb` 的數據庫和一個名為 `users` 的表:
```sql
CREATE DATABASE testdb;
USE testdb;
CREATE TABLE users (
? ? id INT AUTO_INCREMENT PRIMARY KEY,
? ? name VARCHAR(100) NOT NULL,
? ? email VARCHAR(100) NOT NULL
);
```
### 二、添加 MySQL JDBC 驅動
從 MySQL 官方網站下載 MySQL JDBC 驅動(Connector/J):
- [MySQL Connector/J 下載頁面](https://dev.mysql.com/downloads/connector/j/)
將下載的 JDBC 驅動添加到您的項目中。如果您使用的是 Maven,可以在 `pom.xml` 文件中添加以下依賴:
```xml
<dependency>
? ? <groupId>mysql</groupId>
? ? <artifactId>mysql-connector-java</artifactId>
? ? <version>8.0.26</version>
</dependency>
```
### 三、編寫 Java 代碼
以下是一個完整的 Java 示例,展示如何使用 JDBC 插入數據到 MySQL 數據庫:
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class JDBCInsertExample {
? ? private static final String JDBC_URL = "jdbc:mysql://localhost:3306/testdb";
? ? private static final String JDBC_USER = "root";
? ? private static final String JDBC_PASSWORD = "yourpassword";
? ? public static void main(String[] args) {
? ? ? ? // 插入的用戶數據
? ? ? ? String name = "John Doe";
? ? ? ? String email = "john.doe@example.com";
? ? ? ? try {
? ? ? ? ? ? // 加載 MySQL JDBC 驅動
? ? ? ? ? ? Class.forName("com.mysql.cj.jdbc.Driver");
? ? ? ? ? ? // 建立數據庫連接
? ? ? ? ? ? Connection connection = DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASSWORD);
? ? ? ? ? ? // 插入數據
? ? ? ? ? ? String insertSQL = "INSERT INTO users (name, email) VALUES (?, ?)";
? ? ? ? ? ? try (PreparedStatement preparedStatement = connection.prepareStatement(insertSQL)) {
? ? ? ? ? ? ? ? preparedStatement.setString(1, name);
? ? ? ? ? ? ? ? preparedStatement.setString(2, email);
? ? ? ? ? ? ? ? int rowsInserted = preparedStatement.executeUpdate();
? ? ? ? ? ? ? ? if (rowsInserted > 0) {
? ? ? ? ? ? ? ? ? ? System.out.println("A new user was inserted successfully!");
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ? // 關閉數據庫連接
? ? ? ? ? ? connection.close();
? ? ? ? } catch (ClassNotFoundException | SQLException e) {
? ? ? ? ? ? e.printStackTrace();
? ? ? ? }
? ? }
}
```
### 代碼解釋
1. **加載 MySQL JDBC 驅動**:
? ?```java
? ?Class.forName("com.mysql.cj.jdbc.Driver");
? ?```
? ?這行代碼加載 MySQL JDBC 驅動,使得 `DriverManager` 可以找到并使用該驅動。
2. **建立數據庫連接**:
? ?```java
? ?Connection connection = DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASSWORD);
? ?```
? ?使用 `DriverManager.getConnection` 方法建立到 MySQL 數據庫的連接。
3. **插入數據**:
? ?```java
? ?String insertSQL = "INSERT INTO users (name, email) VALUES (?, ?)";
? ?try (PreparedStatement preparedStatement = connection.prepareStatement(insertSQL)) {
? ? ? ?preparedStatement.setString(1, name);
? ? ? ?preparedStatement.setString(2, email);
? ? ? ?int rowsInserted = preparedStatement.executeUpdate();
? ? ? ?if (rowsInserted > 0) {
? ? ? ? ? ?System.out.println("A new user was inserted successfully!");
? ? ? ?}
? ?}
? ?```
? ?使用 `PreparedStatement` 預編譯 SQL 語句,并通過 `setString` 方法設置參數值。執行 `executeUpdate` 方法執行插入操作,并返回受影響的行數。
4. **關閉數據庫連接**:
? ?```java
? ?connection.close();
? ?```
? ?插入數據后,關閉數據庫連接以釋放資源。
### 總結
通過上述步驟和示例代碼,您可以在 Java 中使用 JDBC 插入數據到 MySQL 數據庫。JDBC 提供了一套標準的 API,使得 Java 應用程序可以方便地與關系型數據庫進行交互。希望這些示例對您有所幫助。