SpringBoot+EasyExcel+Mybatis+H2實現導入

文章目錄

  • SpringBoot+EasyExcel+Mybatis+H2實現導入
    • 1.準備工作
      • 1.1 依賴管理
      • 1.2 配置信息properties
      • 1.3 H2數據庫
      • 1.4 Spring Boot 基礎概念
      • 1.5 Mybatis
        • 核心概念
      • 1.6 EasyExcel
        • 核心概念
    • 2.生成Excel數據
      • 工具類-隨機字符串
      • 編寫生成Excel的java文件
    • 3.導入功能并且存入數據庫
      • 3.1 返回結果集R
      • 3.2 實體類javabean
      • 3.3 dao數據層
      • 3.4 dao映射類
      • 3.5 服務層
      • 3.6 控制層
      • 3.7 監聽器
      • 3.8 postman & 數據庫情況

SpringBoot+EasyExcel+Mybatis+H2實現導入

1.準備工作

  • Spring Boot
  • Easy Excel
  • Mybatis
  • H2數據庫
  • 工具類-生成隨機字符串,返回結果集

1.1 依賴管理

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.6.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.geekmice</groupId><artifactId>fifth</artifactId><version>0.0.1-SNAPSHOT</version><name>fifth</name><description>fifth</description><properties><java.version>8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.4</version></dependency><!--mysql connector--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope><version>8.0.28</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!--swagger--><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>2.0.7</version><exclusions><exclusion><artifactId>springfox-spring-webmvc</artifactId><groupId>io.springfox</groupId></exclusion><exclusion><artifactId>swagger-models</artifactId><groupId>io.swagger</groupId></exclusion></exclusions></dependency><!--接口平臺--><dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.0</version></dependency><!--easyexcel--><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.6</version></dependency><!--h2--><dependency><groupId>com.h2database</groupId><artifactId>h2</artifactId><scope>runtime</scope></dependency><!--swagger--><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>2.0.7</version><exclusions><exclusion><artifactId>springfox-spring-webmvc</artifactId><groupId>io.springfox</groupId></exclusion><exclusion><artifactId>swagger-models</artifactId><groupId>io.swagger</groupId></exclusion></exclusions></dependency><!--接口平臺--><dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.0</version></dependency></dependencies></project>

1.2 配置信息properties


# mybatis
mybatis.mapper-locations=classpath:mapper/*.xml
# mybatis??
mybatis.type-aliases-package=com.geekmice.fifth.entity# h2 
spring.datasource.url=jdbc:h2:tcp://localhost/~/test
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=saspring.servlet.multipart.max-file-size=500MB
spring.servlet.multipart.max-request-size=500MB
spring.servlet.multipart.enabled=true

1.3 H2數據庫

H2是開源的輕量級關系型數據庫,支持內存模式、嵌入式部署及服務端模式。其特點包括:

  • 兼容性:支持SQL:2011SQ**L:2011標準,部分兼容MySQL/PostgreSQL語法
  • 高性能:內存模式下讀寫速度可達106106次/秒級別
  • 零配置:單一JAR包(約2.3MB2.3MB)即可運行

1.4 Spring Boot 基礎概念

  1. 核心特性
    Spring Boot 通過自動配置和約定大于配置的原則簡化 Spring 應用開發2
    • 自動配置:根據類路徑依賴自動配置 Bean(如引入spring-boot-starter-web自動配置 Tomcat)
    • 內嵌服務器:默認集成 Tomcat(可切換為 Jetty 或 Undertow)
    • 獨立運行:通過main方法直接啟動應用
  2. 核心注解 @SpringBootApplication
    該注解整合了:
    • @SpringBootConfiguration:標記為配置類
    • @EnableAutoConfiguration:啟用自動配置
    • @ComponentScan:自動掃描當前包及子包的組件

1.5 Mybatis

MyBatis 是一款優秀的持久層框架,它支持定制化 SQL、存儲過程以及高級映射。以下為你介紹一些 MyBatis 的基礎知識:

核心概念
  1. SqlSessionFactory:這是 MyBatis 的核心對象,它是一個工廠類,用于創建SqlSession對象。
  2. SqlSession:這是一個會話對象,類似于 JDBC 中的Connection,它提供了執行 SQL 語句的方法。
  3. Mapper 接口:這是一個 Java 接口,用于定義 SQL 方法。MyBatis 會自動為這個接口生成實現類。
  4. Mapper XML 文件:用于編寫 SQL 語句,也可以使用注解來替代。

1.6 EasyExcel

EasyExcel 是阿里巴巴開源的一個操作 Excel 的框架,它具有簡單易用、節省內存等優點。下面為你詳細介紹 EasyExcel:

核心概念
  • 讀取 Excel:從 Excel 文件里讀取數據,支持多種數據格式以及自定義讀取邏輯。
  • 寫入 Excel:把數據寫入到 Excel 文件,能自定義表頭、樣式等。
  • 模型映射:借助 Java 對象和 Excel 表格進行映射,達成數據的自動讀寫。

2.生成Excel數據

工具類-隨機字符串

package com.geekmice.fifth.util;
import java.util.concurrent.ThreadLocalRandom;public class ThreadLocalRandomStringGenerator {private static final String CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";public static String generateRandomString(int length) {StringBuilder sb = new StringBuilder(length);for (int i = 0; i < length; i++) {int index = ThreadLocalRandom.current().nextInt(CHARACTERS.length());sb.append(CHARACTERS.charAt(index));}return sb.toString();}public static void main(String[] args) {String randomString = generateRandomString(10);System.out.println("使用 ThreadLocalRandom 生成的字符串: " + randomString);}
}

編寫生成Excel的java文件

package com.geekmice.fifth.util;import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Builder;
import lombok.Data;import java.util.ArrayList;
import java.util.Date;
import java.util.List;@Data
@Builder
class ProductDetail {/*** 產品id*/@ExcelIgnoreprivate Integer id;/*** 產品詳情*/@ExcelProperty(value = "產品詳情", index = 0)private String description;/*** 產品規格*/@ExcelProperty(value = "產品規格", index = 1)private String specifications;/*** 備注*/@ExcelProperty(value = "備注", index = 2)private String notes;/*** 訂單時間*/@ExcelProperty(value = "訂單時間", index = 3)private Date orderTime;@ExcelProperty(value = "產品id", index = 4)private Integer productId;
}public class DataExportEasyExcel {public static void main(String[] args) {generateData(10000);generateData(100000);generateData(1000000);}/*** rowCount 代表生成數據的行數*/public static void generateData(int rowCount) {// 準備數據List<ProductDetail> dataList = new ArrayList<>();for (int i = 0; i < rowCount; i++) {dataList.add(ProductDetail.builder().description(ThreadLocalRandomStringGenerator.generateRandomString(10)).specifications(ThreadLocalRandomStringGenerator.generateRandomString(4)).notes(ThreadLocalRandomStringGenerator.generateRandomString(7)).orderTime(new Date()).productId(i).build());}String fileName = null;if (rowCount == 10000) {fileName = "D:\\Files\\Idea\\applicationscenario\\fifth\\src\\main\\resources\\static\\ExcelData1w.xlsx";} else if (rowCount == 100000) {fileName = "D:\\Files\\Idea\\applicationscenario\\fifth\\src\\main\\resources\\static\\ExcelData10w.xlsx";} else if (rowCount == 1000000) {fileName = "D:\\Files\\Idea\\applicationscenario\\fifth\\src\\main\\resources\\static\\ExcelData100w.xlsx";}/*** 這行代碼使用EasyExcel庫的write方法來創建一個Excel文件,并將dataList中的產品數據寫入到Excel文件的"sheet1"工作表中。* fileName參數指定了生成的Excel文件的保存路徑和名稱*/EasyExcel.write(fileName, ProductDetail.class).sheet("sheet1").doWrite(dataList);}}

image-20250430142355118

3.導入功能并且存入數據庫

image-20250430142800946

3.1 返回結果集R

package com.geekmice.fifth.util;import lombok.*;
import org.springframework.http.HttpStatus;import java.io.Serializable;@ToString
@NoArgsConstructor
@AllArgsConstructor
public class R<T> implements Serializable {private static final long serialVersionUID = 1L;@Getter@Setterprivate int code;@Getter@Setterprivate String msg;@Getter@Setterprivate T data;public static <T> R<T> ok() {return restResult(null, HttpStatus.OK.value(), HttpStatus.OK.getReasonPhrase());}public static <T> R<T> ok(T data) {return restResult(data, HttpStatus.OK.value(), HttpStatus.OK.getReasonPhrase());}public static <T> R<T> ok(T data, String msg) {return restResult(data, HttpStatus.OK.value(), msg);}public static <T> R<T> failed() {return restResult(null, HttpStatus.INTERNAL_SERVER_ERROR.value(), HttpStatus.INTERNAL_SERVER_ERROR.getReasonPhrase());}public static <T> R<T> failed(String msg) {return restResult(null, HttpStatus.INTERNAL_SERVER_ERROR.value(), msg);}public static <T> R<T> failed(T data) {return restResult(data, HttpStatus.INTERNAL_SERVER_ERROR.value(), HttpStatus.INTERNAL_SERVER_ERROR.getReasonPhrase());}public static <T> R<T> failed(T data, String msg) {return restResult(data, HttpStatus.INTERNAL_SERVER_ERROR.value(), msg);}public static <T> R<T> restResult(T data, int code, String msg) {R<T> apiResult = new R<>();apiResult.setCode(code);apiResult.setData(data);apiResult.setMsg(msg);return apiResult;}}

3.2 實體類javabean

package com.geekmice.fifth.entity;import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Builder;
import lombok.Data;import java.util.Date;@Data
public class ProductDetailExcel {/*** 產品id*/@ExcelIgnoreprivate Integer id;/*** 產品詳情*/@ExcelProperty(value = "產品詳情", index = 0)private String description;/*** 產品規格*/@ExcelProperty(value = "產品規格", index = 1)private String specifications;/*** 備注*/@ExcelProperty(value = "備注", index = 2)private String notes;/*** 訂單時間*/@ExcelProperty(value = "訂單時間", index = 3)private Date orderTime;@ExcelProperty(value = "產品id", index = 4)private Integer productId;
}

3.3 dao數據層

package com.geekmice.fifth.dao;import com.geekmice.fifth.entity.ProductDetail;
import com.geekmice.fifth.entity.ProductDetailExcel;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;import java.util.List;@Mapper
public interface ProductDetailDao {int insertBatch(@Param("list") List<ProductDetailExcel> cachedStudentList);void truncate();
}

3.4 dao映射類

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.geekmice.fifth.dao.ProductDetailDao"><insert id="insertBatch" ><foreach collection="list" item="item" separator=";">insert into product_detail (specifications, description, notes, order_time,product_id)values(#{item.specifications}, #{item.description}, #{item.notes}, #{item.orderTime},#{item.productId})</foreach></insert></mapper>

3.5 服務層

package com.geekmice.fifth.service;import com.geekmice.fifth.entity.ProductDetail;
import org.springframework.web.multipart.MultipartFile;import java.io.File;
import java.io.IOException;
import java.util.List;/*** @author geekmice* @description: ProductDetailService 服務層* @date 2020/4/10*/
public interface ProductDetailService {/*** 讀取臨時文件并保存到數據庫中* @param tempFile 臨時文件*/void readAndSave(MultipartFile tempFile) throws IOException;}package com.geekmice.fifth.service.impl;import com.alibaba.excel.EasyExcel;
import com.geekmice.fifth.dao.ProductDetailDao;
import com.geekmice.fifth.entity.ProductDetail;
import com.geekmice.fifth.entity.ProductDetailExcel;
import com.geekmice.fifth.listener.ProductDetailListener;
import com.geekmice.fifth.service.ProductDetailService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;import java.io.IOException;
import java.util.List;@Service
@RequiredArgsConstructor
public class ProductDetailImpl implements ProductDetailService {private final ProductDetailDao productDetailDao;@Overridepublic void readAndSave(MultipartFile file) throws IOException {productDetailDao.truncate();EasyExcel.read(file.getInputStream(), ProductDetailExcel.class, new ProductDetailListener(productDetailDao)).sheet().doRead();}}

3.6 控制層

package com.geekmice.fifth.controller;import com.alibaba.excel.EasyExcel;
import com.geekmice.fifth.dao.ProductDetailDao;
import com.geekmice.fifth.entity.ProductDetail;
import com.geekmice.fifth.entity.ProductDetailExcel;
import com.geekmice.fifth.listener.ProductDetailListener;
import com.geekmice.fifth.service.ProductDetailService;
import com.geekmice.fifth.util.R;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;import java.io.IOException;/*** @description: ProductDetailController 商品詳情控制器* @author: pmb* @date 2021/4/16* @time 10:30*/
@RestController
@RequestMapping(value = "/productDetail")
@RequiredArgsConstructor
@Slf4j
public class ProductDetailController {private final ProductDetailService productDetailService;/*** @description: 導入Excel數據*/@PostMapping(value = "/importExcel")public R importExcel(@RequestParam("file") MultipartFile file) {try {productDetailService.readAndSave(file);} catch (Exception e) {log.error("error msg 【{}】", e);e.printStackTrace();}return R.ok();}}

3.7 監聽器

package com.geekmice.fifth.listener;import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.geekmice.fifth.dao.ProductDetailDao;
import com.geekmice.fifth.entity.ProductDetailExcel;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;import java.util.ArrayList;
import java.util.List;@Slf4j
@RequiredArgsConstructor
public class ProductDetailListener extends AnalysisEventListener<ProductDetailExcel> {private final ProductDetailDao productDetailDao;private static final int BATCH_SIZE = 1000;private List<ProductDetailExcel> cachedStudentList = new ArrayList<>();@Overridepublic void invoke(ProductDetailExcel student, AnalysisContext analysisContext) {
//        log.info("開始保存數據...");cachedStudentList.add(student);// 達到BATCH_COUNT了,需要去存儲一次數據庫,防止數據幾萬條數據在內存,容易OOMif (cachedStudentList.size() >= BATCH_SIZE) {saveData();cachedStudentList.clear();}}private void saveData() {
//        log.info("{}條數據,開始存儲數據庫!", cachedStudentList.size());productDetailDao.insertBatch(cachedStudentList);
//        log.info("存儲數據庫成功!");}@Overridepublic void doAfterAllAnalysed(AnalysisContext analysisContext) {// 所有數據解析完成后的操作// 例如:將數據保存到數據庫saveData();
//        System.out.println("所有數據解析完成!");}public List<ProductDetailExcel> getCachedStudentList() {return cachedStudentList;}
}

3.8 postman & 數據庫情況

image-20250430143306142image-20250430143342054

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/78869.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/78869.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/78869.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

嵌入式開發高頻面試題全解析:從基礎編程到內存操作核心知識點實戰

一、數組操作&#xff1a;3x3 數組的對角和、偶數和、奇數和 題目 求 3x3 數組的對角元素和、偶數元素和、奇數元素和。 知識點 數組遍歷&#xff1a;通過雙重循環訪問數組的每個元素&#xff0c;外層循環控制行&#xff0c;內層循環控制列。對角元素判斷&#xff1a; 主對…

分布式優化與一致性算法python實現

目錄 摘要一、分布式優化問題描述二、一致性算法基礎2.1 平均一致性(Average Consensus)2.2 Gossip 協議三、分布式梯度下降(DGD)四、分布式 ADMM 與共識優化五、收斂性與參數選擇六、典型案例6.1 傳感器網絡參數估計6.1.1 問題描述6.1.2 算法設計6.1.3 實驗結果6.2 分布式…

突破SQL注入字符轉義的實戰指南:繞過技巧與防御策略

在滲透測試中&#xff0c;SQL注入始終是Web安全的重點攻擊手段。然而&#xff0c;當開發者對用戶輸入的特殊字符&#xff08;如單引號、反斜杠&#xff09;進行轉義時&#xff0c;傳統的注入方式往往會失效。本文將深入探討如何繞過字符轉義限制&#xff0c;并給出防御建議。 目…

算法導論第6章思考題

6.3-2 func(A) 1 A.heap-sizeA.len 2 \quad for i ? A . l e n 2 ? \lfloor {A.len\over2}\rfloor ?2A.len?? downto 1 3 \qquad MAX-HEAPIFY(A,i) 對于第2行的循環控制變量i來說&#xff0c;為啥要求它是從 ? A . l e n 2 ? \lfloor {A.len\over2}\rfloor ?2A.len??…

可商用,可離線運行,可API接口調用的開源AI數字人項目Heygem,喂飯級安裝教程

前言 Heygem 是一款開源項目&#xff0c;致力于發揮你電腦硬件的全部潛力&#xff0c;讓你無需依賴云端&#xff0c;也能在本地高效運行各類開源AI數字人模型。無論是 AI 語音對話、虛擬主播&#xff0c;還是數字人驅動引擎&#xff0c;Heygem 通過底層性能調度與資源管理優化&…

三個概念:DataBinding,Dependency Property 與DataTemplate

WPF 核心概念詳解&#xff1a;DataBinding、Dependency Property 和 DataTemplate 1. DataBinding (數據綁定) 基本概念 DataBinding 是 WPF 的核心機制&#xff0c;用于在 UI 元素和數據源之間建立自動同步關系。 關鍵特性 雙向綁定&#xff1a;數據變化自動反映到 UI&…

C語言教程(二十六):C 語言內存管理詳解

一、C 語言內存區域劃分 在 C 語言程序運行時,內存主要分為以下幾個區域: 1.1 棧區(Stack) 特點:由編譯器自動分配和釋放,主要存儲函數的局部變量、函數參數、返回地址等。棧區的內存分配和釋放是按照后進先出(LIFO)的原則進行的,速度快。示例: #include <stdio.…

騰訊云服務器性能提升全棧指南(2025版)

騰訊云服務器性能提升全棧指南&#xff08;2025版&#xff09; 一、硬件選型與資源優化 1. 實例規格精準匹配 騰訊云服務器提供計算型CVM、內存型MEM、大數據型Hadoop等12種實例類型。根據業務特性選擇&#xff1a; ? 高并發Web應用&#xff1a;推薦SA3實例&#xff0…

決策樹在電信客戶流失分析中的實戰應用

在當今數據驅動的時代&#xff0c;數據分析和機器學習技術在各行業的應用愈發廣泛。電信行業面臨著激烈的競爭&#xff0c;客戶流失問題成為影響企業發展的關鍵因素之一。如何準確預測客戶是否會流失&#xff0c;并采取相應措施挽留客戶&#xff0c;是電信企業關注的重點。決策…

【HCIA】VRRP

前言 二層交換機為了破環發明了堆疊&#xff0c;把幾臺實際的交換機視作一個虛擬的交換機&#xff0c;實現了鏈路的復用和環路的破壞。那么對應到三層的路由器&#xff0c;我們有 VRRP&#xff08;Virtual Router Redundancy Protocol&#xff09;&#xff0c;它可以讓路由器分…

第15講:基礎柱狀圖與分組柱狀圖美化指南

目錄 ?? 一、為什么要關注柱狀圖的“美化”? ?? 二、基礎柱狀圖的構建邏輯(以 ggplot2 為例) ?? 三、美化細節全面升級 ? 1. 自定義配色與透明度 ? 2. 添加數值標簽 ? 3. 設置 y 軸刻度與坐標軸美學 ????? 四、分組柱狀圖(Grouped Bar Plot) ?? 五…

SV 仿真的常識

文章目錄 SV對verilog的擴展&#x1f4d8; 標準文檔名稱&#xff1a; 從SV到仿真通用過程解讀實例解讀 SV的仿真過程并行仿真顆粒度SV仿真調度調度區域 SV對verilog的擴展 SystemVerilog 和 Verilog 的語法標準由 **IEEE&#xff08;美國電氣和電子工程師協會&#xff09;**制…

蘇德戰爭前期蘇聯損失慘重(馬井堂)

蘇德戰爭前期&#xff08;1941年6月22日德國發動“巴巴羅薩行動”至1941年底至1942年初&#xff09;是蘇聯在二戰中損失最慘重的階段之一。以下是主要方面的損失概述&#xff1a; ?一、軍事損失? ?人員傷亡與俘虜? 至1941年底&#xff0c;蘇軍傷亡約?300萬人?&#xff…

聯邦學習的收斂性分析(全設備參與,不同本地訓練輪次)

聯邦學習的收斂性分析 在聯邦學習中,我們的目標是分析全局模型的收斂性,考慮設備異構性(不同用戶的本地訓練輪次不同)和數據異質性(用戶數據分布不均勻)。以下推導從全局模型更新開始,逐步引入假設并推導期望損失的遞減關系,最終給出收斂性結論。 1. 全局模型更新與泰…

多線程爬蟲中實現線程安全的MySQL連接池

多線程爬蟲中實現線程安全的MySQL連接池 在日常開發中&#xff0c;數據庫操作頻繁建立/關閉連接會帶來性能損耗&#xff0c;尤其在多線程場景中更容易出現連接復用、阻塞等問題。因此&#xff0c;本文介紹如何使用 Python 封裝一個 線程安全的 MySQL 連接池&#xff0c;并通過…

HTML:常用標簽(元素)匯總

文章目錄 一、標簽分類1、塊標簽與行標簽 二、排版標簽三、文本標簽1、常用2、不常用 四、圖片標簽五、超鏈接1、跳轉頁面2、跳轉文件或下載文件3、跳轉到錨點4、喚起本地應用 六、列表七、表格八、表單九、框架十、HTML實體十一、全局屬性十二、meta元信息 一、標簽分類 1、塊…

20250430在ubuntu14.04.6系統上完成編譯NanoPi NEO開發板的FriendlyCore系統【嚴重不推薦,屬于沒苦硬吃】

【開始編譯SDK之前需要更新源】 rootrootubuntu:~/friendlywrt-h3$ sudo apt update 【這兩個目錄你在ubuntu14.04.6系統上貌似git clone異常了】 Y:\friendlywrt-h3\out\wireguard Y:\friendlywrt-h3\kernel\exfat-nofuse 【需要單線程編譯文件系統&#xff0c;原因不明】 Y:…

【AI論文】CipherBank:通過密碼學挑戰探索LLM推理能力的邊界

摘要&#xff1a;大型語言模型&#xff08;LLMs&#xff09;已經展現出非凡的能力&#xff0c;尤其是最近在推理方面的進步&#xff0c;如o1和o3&#xff0c;推動了人工智能的發展。盡管在數學和編碼方面取得了令人印象深刻的成就&#xff0c;但在需要密碼學專業知識的領域&…

藝術與科技的雙向奔赴——高一鑫榮獲加州聯合表彰

2025年4月20日,在由M.A.D公司協辦的“智藝相融,共赴價值巔峰”(Academic and Artistic Fusion Tribute to the Summit of Value)主題發布會上,音樂教育與科技融合領域的代表人物高一鑫,因其在數字音樂教育與中美文化交流方面的杰出貢獻,榮獲了圣蓋博市議員Jorge Herrera和爾灣市…

【深度學習的靈魂】圖片布局生成模型LayoutPrompt(1)

&#x1f308; 個人主頁&#xff1a;十二月的貓-CSDN博客 &#x1f525; 系列專欄&#xff1a; &#x1f3c0;《深度學習理論直覺三十講》_十二月的貓的博客-CSDN博客 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻擋不了春天的腳步&#xff0c;十二點的黑夜遮蔽不住黎明的曙光 目…