Java如何實(shí)現(xiàn)文件導(dǎo)入數(shù)據(jù)庫

小億
151
2023-09-15 17:58:33
欄目: 編程語言

在Java中,可以使用Java IO庫中的類來實(shí)現(xiàn)文件導(dǎo)入數(shù)據(jù)庫的功能。下面是一個(gè)簡(jiǎn)單的示例代碼:
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class FileImporter {
   public static void main(String[] args) {
       String filename = "data.csv"; // 文件名
       String url = "jdbc:mysql://localhost:3306/db_name"; // 數(shù)據(jù)庫連接URL
       String username = "username"; // 數(shù)據(jù)庫用戶名
       String password = "password"; // 數(shù)據(jù)庫密碼
       
       try (Connection conn = DriverManager.getConnection(url, username, password);
            BufferedReader br = new BufferedReader(new FileReader(filename))) {
           String line;
           String sql = "INSERT INTO table_name (column1, column2, column3) VALUES (?, ?, ?)"; // 插入語句
           
           PreparedStatement pstmt = conn.prepareStatement(sql);
           
           while ((line = br.readLine()) != null) {
               String[] data = line.split(","); // 假設(shè)文件是逗號(hào)分隔的
               
               // 設(shè)置參數(shù)
               pstmt.setString(1, data[0]);
               pstmt.setString(2, data[1]);
               pstmt.setString(3, data[2]);
               
               pstmt.executeUpdate(); // 執(zhí)行插入語句
           }
           
           System.out.println("文件導(dǎo)入完成!");
       } catch (SQLException e) {
           e.printStackTrace();
       } catch (Exception e) {
           e.printStackTrace();
       }
   }
}
```
在上述代碼中,我們使用了`BufferedReader`來讀取文件,使用`PreparedStatement`來執(zhí)行插入操作,并且通過`split`函數(shù)將每一行數(shù)據(jù)拆分成字符串?dāng)?shù)組。然后,我們根據(jù)需要將數(shù)據(jù)設(shè)置為預(yù)處理語句的參數(shù),最后執(zhí)行插入操作。請(qǐng)根據(jù)自己的實(shí)際情況修改數(shù)據(jù)庫連接URL、用戶名、密碼、文件名、插入語句以及列數(shù)和數(shù)據(jù)類型。

0