SAP學習筆記 - 開發13 - CAP 之 添加數據庫支持(Sqlite)

上一章學習了CAP開發準備,添加Service。

SAP學習筆記 - 開發12 - CAP 之 開發準備,添加服務-CSDN博客

本章繼續學習CAP開發 - 添加數據庫支持(Sqlite)。

目錄

1,數據庫準備

- H2 內存數據庫

?- Sqlite數據庫

a),npm install sqlite3

b),安裝 Sqlite Viewer

2,添加一個基于數據庫表的Entity

3,創建和配置數據庫文件

-?cds deploy --to sqlite

- Sqlite View查看數據庫

-?SQLite3 Editor

- 在package.json 里面添加URL指定

- 配置Application.yml

- pom.xml 加Dependency

4,測試一下

-?mvn spring-boot:run -D"spring-boot.run.profiles"=sqlite

- localhost:8080

- 用Postman測試

5,總結


下面是詳細內容。

1,數據庫準備

- H2 內存數據庫

默認CAP是用的H2 內存數據庫:

咱們上一篇文章當中,

SAP學習筆記 - 開發12 - CAP 之 開發準備,添加服務-CSDN博客

com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Added connection conn0: url=jdbc:h2:mem:43a17619-9a82-4f03-a01f-0c2ec22faad1 user=SA

連schema-h2.sql 都一并生成好了:

有關H2數據庫,好像有點兒意思,有空看看。

【SpringBoot新手篇】SpringBoot 集成H2數據庫-CSDN博客

?- Sqlite數據庫

咱們這里先使用Sqlite本地數據庫,以后再弄弄Postgre,HANA Cloud啥的。

a),npm install sqlite3

進入到項目文件夾,然后安裝Sqlite數據庫。

如果沒有package.json文件,還需要先運行?npm init -y 初期化項目。

應該是這個哈

b),安裝 Sqlite Viewer

在Visual Studio Code直接打開Sqlite文件。

2,添加一個基于數據庫表的Entity

- 在 db 文件夾下建?schema.cds 文件

entity DBEntities {key ID : Integer;title  : String(111);descr  : String(1111);
}

- 添加 data 文件

ID;title;descr
1001;Title1; Desc of test1
1002;Title2; Desc of test2

-?修改Service Defintion的cds文件

這里的?@cds.persistence.skip: true 這個annotation 的作用是告訴CAP不要創建DB表

service DemoService {@cds.persistence.skip: trueentity DemoEntity {key ID: Integer;title: String(111);descr: String(1111);}
}

3,創建和配置數據庫文件

-?cds deploy --to sqlite

PS C:\Users\abcta\CAPTest03> cds deploy --to sqlite
Debugger attached.
/> successfully deployed to db.sqlite Waiting for the debugger to disconnect...

這個 db.sqlite 文件就是 sqlite3 的數據庫文件

后面因為路徑問題,搞得我還挺暈菜的,這里直接把這個文件給放到srv 文件夾下面去

- Sqlite View查看數據庫

直接在 VSCode里面查看是否建表成功

-?SQLite3 Editor?

很有可能你會像我一樣,想改下表啥的,那就得換個插件,我這里用的 SQLite3 Editor

- 在package.json 里面添加URL指定

? 覺得名稱有點兒怪,叫 xx.db更好些哈,咱這里默認生成了 .sqlite

? 后面還因此出了錯,網上有人說要改成 .db,因為我也改了別的東西了,但是我也沒有太確定

? 咱們這里都改成 sqlite.db 了。

  "cds": {"requires": {"db": {"kind": "sqlite","credentials": {"url":"sqlite.db"}}}}

- 配置Application.yml

AsIs:默認指向的是h2 數據庫

---
spring:config.activate.on-profile: defaultsql.init.platform: h2
cds:data-source.auto-config.enabled: false

ToBe:配置指向Sqlite 數據庫

---
spring:config:activate:on-profile: sqlitedatasource:url: jdbc:sqlite:sqlite.dbdriver-class-name: org.sqlite.JDBChikari:maximum-pool-size: 1

?

- pom.xml 加Dependency

這個是sqlite的JDBC驅動,加上這個,把H2 的那個給刪掉

不然后面會出沒有 sqlite-jdbc 驅動錯誤,然后還指向了H2

我總感覺這里好像還有些沒弄明白似的,歡迎朋友們補充,搞得更清楚些

        <dependency><groupId>org.xerial</groupId><artifactId>sqlite-jdbc</artifactId><version>3.49.1.0</version></dependency>

都配置完了,運行一下看看

4,測試一下

-?mvn spring-boot:run -D"spring-boot.run.profiles"=sqlite

PS C:\Users\abcta\CAPTest03> mvn spring-boot:run -D"spring-boot.run.profiles"=sqlite
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
WARNING: A restricted method in java.lang.System has been called
WARNING: java.lang.System::load has been called by org.fusesource.jansi.internal.JansiLoader in an unnamed module (file:/E:/Maven/lib/jansi-2.4.1.jar)
WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module
WARNING: Restricted methods will be blocked in a future release unless native access is enabledWARNING: A terminally deprecated method in sun.misc.Unsafe has been called
WARNING: sun.misc.Unsafe::objectFieldOffset has been called by com.google.common.util.concurrent.AbstractFuture$UnsafeAtomicHelper (file:/E:/Maven/lib/guava-33.2.1-jre.jar)
WARNING: Please consider reporting this to the maintainers of class com.google.common.util.concurrent.AbstractFuture$UnsafeAtomicHelper
WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] 
[INFO] CAPTest03 parent                                                   [pom]
[INFO] CAPTest03                                                          [jar]
[INFO] 
[INFO] ---------------------< customer:CAPTest03-parent >----------------------
[INFO] Building CAPTest03 parent 1.0.0-SNAPSHOT                           [1/2]
[INFO]   from pom.xml
[INFO] --------------------------------[ pom ]---------------------------------
[INFO] 
[INFO] >>> spring-boot:3.4.4:run (default-cli) > test-compile @ CAPTest03-parent >>>
[INFO] 
[INFO] --- enforcer:3.5.0:enforce (Project Structure Checks) @ CAPTest03-parent ---
[INFO] Rule 0: org.apache.maven.enforcer.rules.version.RequireMavenVersion passed
[INFO] Rule 1: org.apache.maven.enforcer.rules.version.RequireJavaVersion passed
[INFO] Rule 2: org.apache.maven.enforcer.rules.ReactorModuleConvergence passed
[INFO] 
[INFO] --- flatten:1.7.0:flatten (flatten) @ CAPTest03-parent ---
[INFO] Generating flattened POM of project customer:CAPTest03-parent:pom:1.0.0-SNAPSHOT...
[INFO] 
[INFO] <<< spring-boot:3.4.4:run (default-cli) < test-compile @ CAPTest03-parent <<<
[INFO] 
[INFO]
[INFO] --- spring-boot:3.4.4:run (default-cli) @ CAPTest03-parent ---
[INFO] 
[INFO] -------------------------< customer:CAPTest03 >-------------------------
[INFO] Building CAPTest03 1.0.0-SNAPSHOT                                  [2/2]
[INFO]   from srv\pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] >>> spring-boot:3.4.4:run (default-cli) > test-compile @ CAPTest03 >>>
[INFO] 
[INFO] --- enforcer:3.5.0:enforce (Project Structure Checks) @ CAPTest03 ---
[INFO] 
[INFO] --- cds:3.9.1:install-node (cds.install-node) @ CAPTest03 ---
[INFO] InstallNodeMojo: Node.js v20.19.0 already installed.
[INFO] 
[INFO] --- cds:3.9.1:npm (cds.npm-ci) @ CAPTest03 ---
[INFO] NpmMojo: Using npm provided by goal install-node: C:\Users\abcta\.m2\repository\com\sap\cds\cds-maven-plugin\cache\unpacked\20.19.0\unpacked-20.19.0-win-x64.zip\node-v20.19.0-win-x64\npm.cmd
[INFO] NpmMojo: Identified C:\Users\abcta\CAPTest03 as reactor base directory.
[INFO] NpmMojo: Using directory containing a .cdsrc.json as working directory: C:\Users\abcta\CAPTest03
[INFO] NpmMojo: Executing [C:\Users\abcta\.m2\repository\com\sap\cds\cds-maven-plugin\cache\unpacked\20.19.0\unpacked-20.19.0-win-x64.zip\node-v20.19.0-win-x64\npm.cmd, ci] in working directory C:\Users\abcta\CAPTest03
[INFO] NpmMojo: npm warn deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good 
and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm warn deprecated @npmcli/move-file@1.1.2: This functionality has been moved to @npmcli/fs
npm warn deprecated npmlog@6.0.2: This package is no longer supported.
npm warn deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm warn deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm warn deprecated are-we-there-yet@3.0.1: This package is no longer supported.
npm warn deprecated gauge@4.0.4: This package is no longer supported.added 382 packages, and audited 383 packages in 1m53 packages are looking for fundingrun `npm fund` for detailsfound 0 vulnerabilities[INFO]
[INFO] --- cds:3.9.1:resolve (cds.resolve) @ CAPTest03 ---
[INFO] 
[INFO] --- cds:3.9.1:cds (cds.build) @ CAPTest03 ---
[INFO] CdsMojo: Using npx provided by goal install-node: C:\Users\abcta\.m2\repository\com\sap\cds\cds-maven-plugin\cache\unpacked\20.19.0\unpacked-20.19.0-win-x64.zip\node-v20.19.0-win-x64\npx.cmd
[INFO] CdsMojo: Using directory containing a .cdsrc.json as working directory: C:\Users\abcta\CAPTest03
[INFO] CdsMojo: Executing [C:\Users\abcta\.m2\repository\com\sap\cds\cds-maven-plugin\cache\unpacked\20.19.0\unpacked-20.19.0-win-x64.zip\node-v20.19.0-win-x64\npx.cmd, -c, cds version] in working directory C:\Users\abcta\CAPTest03
[INFO] CdsMojo: Using configured working directory: C:\Users\abcta\CAPTest03
[INFO] CdsMojo: Executing [C:\Users\abcta\.m2\repository\com\sap\cds\cds-maven-plugin\cache\unpacked\20.19.0\unpacked-20.19.0-win-x64.zip\node-v20.19.0-win-x64\npx.cmd, -c, cds build --for java] in working directory C:\Users\abcta\CAPTest03
[INFO] CdsMojo: building project with {versions: { cds: '8.9.2', compiler: '5.9.2', dk: '8.9.3' },target: '.',tasks: [{ src: 'srv', for: 'java', options: { model: [ 'db', 'srv' ] } }]
}
writing generation log to [C:\Users\abcta\CAPTest03\srv\target\cds-build.log]done > wrote output to:srv\src\main\resources\edmx\csn.jsonsrv\src\main\resources\edmx\odata\v4\DemoService.xmlbuild completed in 1990 ms
[INFO] CdsMojo: Executing [C:\Users\abcta\.m2\repository\com\sap\cds\cds-maven-plugin\cache\unpacked\20.19.0\unpacked-20.19.0-win-x64.zip\node-v20.19.0-win-x64\npx.cmd, -c, cds deploy --to h2 --with-mocks --dry --out \"C:\Users\abcta\CAPTest03\srv/src/main/resources/schema-h2.sql\"] in working directory C:\Users\abcta\CAPTest03
[INFO] CdsMojo: 
[INFO]
[INFO] --- cds:3.9.1:generate (cds.generate) @ CAPTest03 ---
[INFO] GenerateMojo: Adding code output directory C:\Users\abcta\CAPTest03\srv\src\gen\java to compile source directories.
[INFO] GenerateMojo: Adding directory C:\Users\abcta\CAPTest03\srv\src\gen\resources to resources.
[INFO] GenerateMojo: Using C:\Users\abcta\CAPTest03\srv\src\main\resources\edmx\csn.json to generate Java classes into C:\Users\abcta\CAPTest03\srv\src\gen.
[INFO] GenerateMojo: Using module srv: groupId=customer, artifactId=CAPTest03, version=1.0.0-SNAPSHOT
[INFO] GenerateMojo: Class generation finished successfully
[INFO]
[INFO] --- resources:3.3.1:resources (default-resources) @ CAPTest03 ---
[INFO] Copying 4 resources from src\main\resources to target\classes
[INFO] Copying 1 resource from src\gen\resources to target\classes
[INFO] 
[INFO] --- flatten:1.7.0:flatten (flatten) @ CAPTest03 ---
[INFO] Generating flattened POM of project customer:CAPTest03:jar:1.0.0-SNAPSHOT...
[INFO] 
[INFO] --- compiler:3.14.0:compile (default-compile) @ CAPTest03 ---
[INFO] Nothing to compile - all classes are up to date.
[INFO]
[INFO] --- resources:3.3.1:testResources (default-testResources) @ CAPTest03 ---
[INFO] skip non existing resourceDirectory C:\Users\abcta\CAPTest03\srv\src\test\resources
[INFO] 
[INFO] --- compiler:3.14.0:testCompile (default-testCompile) @ CAPTest03 ---
[INFO] No sources to compile
[INFO]
[INFO] <<< spring-boot:3.4.4:run (default-cli) < test-compile @ CAPTest03 <<<
[INFO]
[INFO] 
[INFO] --- spring-boot:3.4.4:run (default-cli) @ CAPTest03 ---
[INFO] Attaching agents: []
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8.   ____          _            __ _ _/\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \\\/  ___)| |_)| | | | | || (_| |  ) ) ) )'  |____| .__|_| |_|_| |_\__, | / / / /=========|_|==============|___/=/_/_/_/:: Spring Boot ::                (v3.4.4)2025-05-19T12:40:33.192+09:00  INFO 792 --- [  restartedMain] customer.captest03.Application           : Starting Application using Java 24.0.1 with PID 792 (C:\Users\abcta\CAPTest03\srv\target\classes started by abcta in C:\Users\abcta\CAPTest03\srv)
2025-05-19T12:40:33.196+09:00  INFO 792 --- [  restartedMain] customer.captest03.Application           : The following 1 profile is active: "sqlite"
2025-05-19T12:40:33.300+09:00  INFO 792 --- [  restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable
2025-05-19T12:40:33.301+09:00  INFO 792 --- [  restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG'
2025-05-19T12:40:34.331+09:00  INFO 792 --- [  restartedMain] c.s.c.services.impl.utils.CdsModelUtils  : Loaded CDS model from CSN resource path 'edmx/csn.json'
2025-05-19T12:40:34.407+09:00  INFO 792 --- [  restartedMain] c.s.c.services.impl.ServiceCatalogImpl   : Registered service OutboxService$InMemory
2025-05-19T12:40:34.413+09:00  INFO 792 --- [  restartedMain] c.s.c.services.impl.ServiceCatalogImpl   : Registered service ApplicationLifecycleService$Default
2025-05-19T12:40:34.419+09:00  INFO 792 --- [  restartedMain] c.s.c.services.impl.ServiceCatalogImpl   : Registered service AuthorizationService$Default
2025-05-19T12:40:34.425+09:00  INFO 792 --- [  restartedMain] c.s.c.services.impl.ServiceCatalogImpl   : Registered service TenantProviderService$Default 
2025-05-19T12:40:34.430+09:00  INFO 792 --- [  restartedMain] c.s.c.services.impl.ServiceCatalogImpl   : Registered service DeploymentService$Default     
2025-05-19T12:40:34.450+09:00  INFO 792 --- [  restartedMain] c.s.c.services.impl.ServiceCatalogImpl   : Registered service AuditLogService$Default
2025-05-19T12:40:34.498+09:00  INFO 792 --- [  restartedMain] c.s.c.services.impl.ServiceCatalogImpl   : Registered service DemoService
2025-05-19T12:40:34.499+09:00  INFO 792 --- [  restartedMain] .s.c.r.CdsRuntimeBeanDefinitionRegistrar : Found 'spring.datasource.url' configuration: Auto-configuration of DataSource beans is disabled.
2025-05-19T12:40:35.943+09:00  INFO 792 --- [  restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port 8080 (http)
2025-05-19T12:40:35.988+09:00  INFO 792 --- [  restartedMain] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2025-05-19T12:40:35.992+09:00  INFO 792 --- [  restartedMain] o.apache.catalina.core.StandardEngine    : Starting Servlet engine: [Apache Tomcat/10.1.39]
2025-05-19T12:40:36.145+09:00  INFO 792 --- [  restartedMain] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2025-05-19T12:40:36.147+09:00  INFO 792 --- [  restartedMain] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2844 ms
2025-05-19T12:40:36.265+09:00  INFO 792 --- [  restartedMain] c.s.c.f.s.c.adapter.AdapterBeanFactory   : Servlet CdsODataV4Servlet mapped to /odata/v4
2025-05-19T12:40:36.276+09:00  INFO 792 --- [  restartedMain] c.s.c.f.s.c.adapter.AdapterBeanFactory   : Servlet IndexPageServlet mapped to /
2025-05-19T12:40:36.281+09:00  INFO 792 --- [  restartedMain] c.s.c.f.s.c.adapter.AdapterBeanFactory   : Servlet CdsFioriPreviewServlet mapped to /$fiori-preview
2025-05-19T12:40:36.777+09:00  INFO 792 --- [  restartedMain] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
WARNING: A restricted method in java.lang.System has been called
WARNING: java.lang.System::load has been called by org.sqlite.SQLiteJDBCLoader in an unnamed module (file:/C:/Users/abcta/.m2/repository/org/xerial/sqlite-jdbc/3.49.1.0/sqlite-jdbc-3.49.1.0.jar)
WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module
WARNING: Restricted methods will be blocked in a future release unless native access is enabled2025-05-19T12:40:36.964+09:00  INFO 792 --- [  restartedMain] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Added connection org.sqlite.jdbc4.JDBC4Connection@5085b2c8
2025-05-19T12:40:36.968+09:00  INFO 792 --- [  restartedMain] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Start completed.
2025-05-19T12:40:37.014+09:00  INFO 792 --- [  restartedMain] c.s.c.services.impl.ServiceCatalogImpl   : Registered service PersistenceService$Default
2025-05-19T12:40:37.171+09:00  INFO 792 --- [  restartedMain] .s.c.a.o.v.m.p.EdmxProviderConfiguration : Initialized Default EDMX V4 Provider
2025-05-19T12:40:37.174+09:00  INFO 792 --- [  restartedMain] .s.c.a.o.v.m.p.EdmxProviderConfiguration : Initialized Default EDMX I18n Provider
2025-05-19T12:40:37.298+09:00  INFO 792 --- [  restartedMain] c.sap.cds.services.impl.utils.BuildInfo  : git.commit.id: bc6c83d24e9a3ad327d29c7d3ea52ba9cc4cad25
2025-05-19T12:40:37.300+09:00  INFO 792 --- [  restartedMain] c.sap.cds.services.impl.utils.BuildInfo  : maven.version: 3.9.1
2025-05-19T12:40:37.460+09:00  INFO 792 --- [  restartedMain] o.s.b.d.a.OptionalLiveReloadServer       : LiveReload server is running on port 35729
2025-05-19T12:40:37.511+09:00  INFO 792 --- [  restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port 8080 (http) with context path '/'
2025-05-19T12:40:37.529+09:00  INFO 792 --- [  restartedMain] customer.captest03.Application           : Started Application in 5.26 seconds (process running for 6.436)
2025-05-19T12:40:46.618+09:00  INFO 792 --- [nio-8080-exec-2] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
2025-05-19T12:40:46.619+09:00  INFO 792 --- [nio-8080-exec-2] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2025-05-19T12:40:46.621+09:00  INFO 792 --- [nio-8080-exec-2] o.s.web.servlet.DispatcherServlet        : Completed initialization in 1 ms
2025-05-19T12:40:46.701+09:00  INFO 792 --- [nio-8080-exec-2] c.s.c.a.odata.v4.metadata.MetadataInfo   : Loading OData V4 metadata for service 'DemoService'

- localhost:8080

- 用Postman測試

好像能插進來的樣子哈

打開數據庫,好像也確實進來了

5,總結

- 默認是支持 H2 In-Memory數據庫,我這里是改成了Sqlite數據庫

- 在 db 文件夾下,建schema.cds 和 data 文件,用 cds deploy 可以生成表和初期化數據的

- 在Postman里面做測試的時候,它好像不認這個表,表名要加個"Service名_" 的前綴

? 我也沒時間搞了,估計是有什么設置的吧

- package.json 里面添加 cds指向Sqlite (正常應該是自動加的,也可能不需要,朋友們可以試試)

-?Application.yml?里面添加指向Sqlite的配置,用以表明本Project用的是Sqlite,不是默認的H2

以上就是本篇的全部內容。

更多SAP顧問業務知識請點擊下面目錄鏈接或東京老樹根的博客主頁

https://blog.csdn.net/shi_ly/category_12216766.html

東京老樹根-CSDN博客

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

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

相關文章

【數據結構與算法】——圖(三)——最小生成樹

前言 本將介紹最小生成樹以及普里姆算法&#xff08;Prim&#xff09;和克魯斯卡爾&#xff08;Kruskal&#xff09; 本人其他博客&#xff1a;https://blog.csdn.net/2401_86940607 圖的基本概念和存儲結構&#xff1a;【數據結構與算法】——圖&#xff08;一&#xff09; 源…

Flink運維要點

一、Flink 運維核心策略 1. 集群部署與監控 資源規劃 按業務優先級分配資源&#xff1a;核心作業優先保障內存和 CPU&#xff0c;避免資源競爭。示例&#xff1a;為實時風控作業分配專用 TaskManager&#xff0c;配置 taskmanager.memory.process.size8g。 監控體系 集成 Prom…

面試點補充

目錄 1. 搭建lnmp Linux 系統基礎命令 nginx相關命令 MySQL 相關命令 PHP 相關命令 驗證命令 下載并部署 Discuz! X3.4 論壇 到 Nginx 網站 2. 腦裂 2.1 腦裂的定義 2.2 腦裂產生的原因 1. 主備節點之間的心跳線中斷 2. 優先級沖突 3. 系統或服務負載過高 2.3 如何…

天能股份SAP系統整合實戰:如何用8個月實現零業務中斷的集團化管理升級

目錄 天能股份SAP系統整合案例&#xff1a;技術驅動集團化管理的破局之路 一、企業背景&#xff1a;新能源巨頭的數字化挑戰 二、項目難點&#xff1a;制造業的特殊攻堅戰 1. 生產連續性剛性需求 2. 數據整合三重障礙 3. 資源限制下的技術突圍 三、解決方案&#xff1a;S…

嵌入式學習筆記 - STM32獨立看門狗IWDG與窗口看門狗WWDG的區別

下圖說明了獨立看門狗IWDG與窗口看門狗WWDG的區別: 從中可以看出&#xff1a; 一 復位 獨立看門狗在計數器技術導0時復位&#xff0c; 窗口看門狗在計數器計數到0X40時復位。 二 喂狗 獨立看門狗可以在計數器從預裝載值降低到0過過程中的任意時間喂狗&#xff0c; 窗口看…

配電房值守難題終結者:EdgeView智能監控的7×24小時守護

在電力行業數字化轉型的背景下&#xff0c;開關柜中的設備作為電能傳輸過程中的重要一環&#xff0c;其質量及運行狀態直接關系到電網的安全性、可靠性、穩定性和抵抗事故的能力。 然而&#xff0c;在開關柜的調試部署與運行使用階段&#xff0c;也常常會遇到設備標準不統一、…

B樹與B+樹全面解析

B樹與B樹全面解析 前言一、B 樹的基本概念與結構特性1.1 B 樹的定義1.2 B 樹的結構特性1.3 B 樹的節點結構示例 二、B 樹的基本操作2.1 查找操作2.2 插入操作2.3 刪除操作 三、B 樹的基本概念與結構特性3.1 B 樹的定義3.2 B 樹的結構特性3.3 B 樹的節點結構示例 四、B 樹與…

如何使用VCS+XA加密verilog和spice網表

如果要交付verilog&#xff0c;但是需要對方進行VCS仿真&#xff0c;那么可以用以下方法&#xff1a; 一、基于編譯指令的局部加密? ?適用場景?&#xff1a;需精確控制加密范圍&#xff08;如僅加密核心算法或敏感邏輯&#xff09;。 ?實現步驟?&#xff1a; ?代碼標注…

策略模式-枚舉實現

策略模式的實現方法有很多&#xff0c;可以通過策略類if,else實現。下面是用枚舉類實現策略模式的方法。 定義一個枚舉類&#xff0c;枚舉類有抽象方法&#xff0c;每個枚舉都實現抽象方法。這個策略&#xff0c;實現方法是工具類的很實現&#xff0c;代碼簡單好理解 枚舉實現…

大數據hadoop小文件處理方案

Hadoop處理小文件問題的解決方案可分為存儲優化、處理優化和架構優化三個維度,以下是綜合技術方案及實施要點: 一、存儲層優化方案 1.文件合并技術 離線合并:使用hadoop fs -getmerge命令將多個小文件合并為大文件并重新上傳; MapReduce合并:開發專用MR…

線程調度與單例模式:wait、notify與懶漢模式解析

一.wait 和 notify&#xff08;等待 和 通知&#xff09; 引入 wait notify 就是為了能夠從應用層面&#xff0c;干預到多個不同線程代碼的執行順序&#xff0c;可以讓后執行的線程主動放棄被調度的機會&#xff0c;等先執行的線程完成后通知放棄調度的線程重新執行。 自助取…

ros運行包,Ubuntu20.04成功運行LIO-SAM

zz:~/lio_sam_ws$ source devel/setup.bash zz:~/lio_sam_ws$ roslaunch lio_sam run.launch 創建包鏈接&#xff1a; 鏈接1&#xff1a;Ubuntu20.04成功運行LIO-SAM_ubuntu20.04運行liosam-CSDN博客 鏈接2&#xff1a;ubuntu 20.04 ROS 編譯和運行 lio-sam,并且導出PCD文件…

AI自動化工作流:開啟當下智能生產力的價值

舉手之言&#xff1a;AI自動化工作流創造了什么呢&#xff1f; AI自動化工作流 &#xff0c;顧名思義&#xff0c;是將人工智能&#xff08;AI&#xff09;技術與自動化流程相結合&#xff0c;通過智能化的方式來完成復雜的任務和操作。簡單來說&#xff0c;它就是利用AI的強大…

【設計模式】- 行為型模式2

觀察者模式 定義了一對多的依賴關系&#xff0c;讓多個觀察者對象同時監聽某一個對象主題。這個主題對象在狀態變化時&#xff0c;會通知所有的觀察者對象&#xff0c;讓他們能夠自動更新自己。 【主要角色】 抽象主題角色&#xff1a;把所有觀察者對象保存在一個集合里&…

mapbox-gl強制請求需要accessToken的問題

vue引入"mapbox-gl": "^2.15.0", 1.13以后得版本&#xff0c;都強制需要驗證這個mapboxgl.accessToken。 解決辦法&#xff1a;實例化地圖的代碼中&#xff0c;加入這個&#xff1a; const originalFetch window.fetch; window.fetch function ({ url…

已知6、7、8月月平均氣溫和標準差,求夏季季平均溫度與標準差

由下面定理&#xff0c;得出平方和的公式&#xff1a;&#xff08;即每天的溫度平方和&#xff09; 這樣就可以推出季平均的算法&#xff1a; 舉例&#xff1a;在Excel用公式算&#xff0c;不要手算&#xff1a; 因此季平均&#xff1a;(B2*C2B3*C3B4*C4)/SUM(B2:B4) 季標準差…

手機內存不夠,哪些文件可以刪?

1??應用緩存文件 安卓&#xff1a;通過「文件管理器」→「Android」→「data」或「cache」文件夾&#xff08;部分需權限&#xff09;&#xff0c;或直接在應用設置中清除緩存 iOS&#xff1a;無需手動清理&#xff0c;系統會自動管理&#xff0c;或在應用內設置中清除&…

可編輯98頁PPT | 某大型制造業數字化轉型戰略規劃項目方案

薦言摘要&#xff1a;某大型制造業數字化轉型戰略規劃項目方案聚焦企業全價值鏈升級&#xff0c;以“數據驅動業務重塑”為核心&#xff0c;打造行業標桿級數字化能力。項目將分三階段推進&#xff0c;首階段聚焦頂層設計&#xff0c;通過現狀診斷明確痛點&#xff1a;針對企業…

lovart design 設計類agent的系統提示詞解讀

文章目錄 lovart 設計agent介紹角色定義工作規范工具調用任務復雜度指南任務移交指南其他ref lovart 設計agent介紹 lovart作為設計agent&#xff0c;產品功能包括&#xff1a; 全鏈路設計能力&#xff1a;可以快速生成完整的品牌視覺方案&#xff0c;包括標志、配色、品牌規范…

使用 docker-volume-backup 備份 Docker 卷

docker-volume-backup 是一個用于備份 Docker 卷的工具&#xff0c;在 Windows 10 上使用它&#xff0c;你可以按照以下步驟操作&#xff1a; 1. 確保 Docker 環境已安裝并正常運行 在 Windows 10 上&#xff0c;你需要安裝 Docker Desktop for Windows。可以從 Docker 官方網…