欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot集成Access?DB實現數據導入和解析

 更新時間:2024年11月08日 08:28:59   作者:HBLOG  
microsoft?office?access是由微軟發(fā)布的關聯式數據庫管理系統,它結合了?microsoft?jet?database?engine?和?圖形用戶界面兩項特點,是一種關系數據庫工具,本文給大家介紹了SpringBoot集成Access?DB實現數據導入和解析,需要的朋友可以參考下

1.什么是Access DB?

microsoft office access是由微軟發(fā)布的關聯式數據庫管理系統。它結合了 microsoft jet database engine 和 圖形用戶界面兩項特點,是一種關系數據庫工具。它在很多地方得到廣泛使用,例如小型企業(yè),大公司的部門,和喜愛編程的開發(fā)人員專門利用它來制作處理數據的桌面系統。它也常被用來開發(fā)簡單的web應用程序.

優(yōu)點:

  • 存儲方式單一:access管理的對象有表、查詢、窗體、報表、頁、宏和模塊,以上對象都存放在后綴為(.mdb)的數據庫文件種,便于用戶的操作和管理。

  • 面向對象:access是一個面向對象的開發(fā)工具。它將一個應用系統當作是由一系列對象組成的,通過對象的方法、屬性完成數據庫的操作和管理,極大地簡化了開發(fā)工作。同時,這種基于面向對象的開發(fā)方式,使得開發(fā)應用程序更為簡便。

  • 界面友好、易操作

  • access是一個可視化工具,用戶想要生成對象并應用,只要使用鼠標進行拖放即可,非常直觀方便。系統還提供了表生成器、查詢生成器、報表設計器以及數據庫向導、表向導、查詢向導、窗體向導、報表向導等工具,使得操作簡便,容易使用和掌握。

  • access可以在一個數據表中嵌入位圖、聲音、excel表格、word文檔,還可以建立動態(tài)的數據庫報表和窗體等。access還可以將程序應用于網絡,并與網絡上的動態(tài)數據相聯接,輕松生成網頁。

缺點:

access是小型數據庫,既然是小型就有它根本的局限性:access數據庫不支持并發(fā)處理、數據庫易被下載存在安全隱患、數據存儲量相對較小等。而且在以下幾種情況下數據庫基本上會吃不消:

  • 數據庫過大,一般access數據庫達到50m左右的時候性能會急劇下降。
  • 網站訪問頻繁,經常達到100人左右的在線。
  • 記錄數過多,一般記錄數達到10萬條左右的時候性能就會急劇下降。

2.數據準備

測試數據庫下載地址:

3.代碼工程

實驗目標

實現access 數據庫導入

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>springboot-demo</artifactId>
        <groupId>com.et</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>accessDB</artifactId>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-autoconfigure</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>net.sf.ucanaccess</groupId>
            <artifactId>ucanaccess</artifactId>
            <version>5.0.1</version>
        </dependency>

    </dependencies>
</project>

controller

主要步驟如下

  • Saving the uploaded file.

  • Connecting to the Access database.

  • Querying data.

  • Processing and storing results in a list.

    package com.demo.controller;

    import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;

    @RestController @RequestMapping("/api/access") public class AccessDatabaseController {

    // Upload Access database file and query data @PostMapping("/upload") public List<Map<String, Object>> uploadAndQuery(@RequestParam("file") MultipartFile file, @RequestParam("tableName") String tableName) { List<Map<String, Object>> results = new ArrayList<>(); Connection connection = null; try { // Save the uploaded file to the server's temporary directory File tempFile = File.createTempFile("upload-", ".accdb"); file.transferTo(tempFile);

     // Connect to the Access database
     String dbUrl = "jdbc:ucanaccess://" + tempFile.getAbsolutePath();
     connection = DriverManager.getConnection(dbUrl);

     // Query the specified table in the database
     Statement statement = connection.createStatement();
     String query = "SELECT * FROM " + tableName;
     ResultSet resultSet = statement.executeQuery(query);

     // Store query results in a List<Map<String, Object>>
     while (resultSet.next()) {
        Map<String, Object> row = new HashMap<>();
        int columnCount = resultSet.getMetaData().getColumnCount();
        for (int i = 1; i <= columnCount; i++) {
           String columnName = resultSet.getMetaData().getColumnName(i);
           row.put(columnName, resultSet.getObject(i));
        }
        results.add(row);
     }

     // Close the ResultSet and Statement
     resultSet.close();
     statement.close();

     // Mark temporary file for deletion upon JVM exit
     tempFile.deleteOnExit();

  } catch (Exception e) {
     e.printStackTrace();
  } finally {
     // Close the database connection
     if (connection != null) {
        try {
           connection.close();
        } catch (Exception e) {
           e.printStackTrace();
        }
     }
  }
  return results;

以上只是一些關鍵代碼,所有代碼請參見下面代碼倉庫

代碼倉庫

4.測試

  • 啟動Spring Boot應用
  • postman訪問http://127.0.0.1:8088/api/access/upload

以上就是SpringBoot集成Access DB實現數據導入和解析的詳細內容,更多關于SpringBoot Access DB數據導入的資料請關注腳本之家其它相關文章!

相關文章

最新評論