当前位置: 首页 > news >正文

基于ubuntu 22, jdk 8x64搭建图数据库环境 hugegraph--google镜像chatgpt

基于ubuntu 22, jdk 8x64搭建图数据库环境 hugegraph

download

环境

uname -a
#Linux whiltez 5.15.0-46-generic #49-Ubuntu SMP Thu Aug 4 18:03:25 UTC 2022 x86_64 x86_64 x86_64 GNU/Linuxwhich javac
#/adoptopen-jdk8u332-b09/bin/javac
which java
#/adoptopen-jdk8u332-b09/bin/java

0. download and unpack


cd ~
#cd /home/z/
mkdir hugegraph; cd hugegraph;
#pwd: /home/z/hugegraphwget https://github.com/hugegraph/hugegraph/releases/download/v0.12.0/hugegraph-0.12.0.tar.gz
wget https://github.com/hugegraph/hugegraph-hubble/releases/download/v1.6.0/hugegraph-hubble-1.6.0.tar.gztar -zxvf hugegraph-0.12.0.tar.gz
tar -zxvf hugegraph-hubble-1.6.0.tar.gztree -L 2 .
"""
.
├── hugegraph-0.12.0
│   ├── bin
│   ├── conf
│   ├── ext
│   ├── lib
│   ├── logs
│   ├── plugins
│   ├── rocksdb-data
│   └── scripts
├── hugegraph-hubble-1.6.0
│   ├── bin
│   ├── conf
│   ├── db.mv.db
│   ├── lib
│   ├── LICENSE
│   ├── logs
│   ├── README.md
│   └── ui"""

1.启动hugegraph服务

cd ~/hugegraph/hugegraph-0.12.0/

1.a 默认使用内置rocketmq数据库, 可修改为mysql

配置文件为: conf/graphs/hugegraph.properties

~/hugegraph/hugegraph-0.12.0/conf/graphs/hugegraph.properties

1.b 可修改web rest服务外部可访问:

#find ~/hugegraph/hugegraph-0.12.0/conf -type f  | xargs -I@ grep -Hn 127 @
sed -i "s/restserver.url=http:\/\/127.0.0.1:8080/restserver.url=http:\/\/0.0.0.0:8080/g" conf/rest-server.properties
#sed -i "g/restserver.url=http://127.0.0.1:8080/restserver.url=http://0.0.0.0:8080/s"  conf/rest-server.properties
#~/hugegraph/hugegraph-0.12.0/conf/rest-server.properties

1.c 可修改gremlin-server端口8182 监听任意ip

sed -i  "s/#host: 127.0.0.1/host: 0.0.0.0/" conf/gremlin-server.yaml
##~/hugegraph/hugegraph-0.12.0/conf/gremlin-server.yaml

注意 hugegraph的gremlin-server端口8182 理论上是可以被Tinerpop的gremlin-client : ‘org.apache.tinkerpop:gremlin-driver:3.6.1’ 正常连上的,
因为 gremlin-server确实是符合gremlin规范的服务 , 但实际上 二者会有细微差异, 比如以下代码部分报错:

import org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteConnection;
import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal;
import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
import org.apache.tinkerpop.gremlin.structure.Vertex;import java.util.Map;import static org.apache.tinkerpop.gremlin.process.traversal.AnonymousTraversalSource.traversal;public class Test2 {public static void main(String[] args){GraphTraversalSource g = traversal().withRemote(DriverRemoteConnection.using("192.168.0.3",8182,"g"));GraphTraversal<Vertex, Map<Object, Object>> list = g.V().elementMap();test2(g);try {g.close();} catch (Exception e) {e.printStackTrace();}}public static void test2(GraphTraversalSource g){Long vertexCnt = g.V().count().next();System.out.println("vertexCnt:"+vertexCnt);}
}

行"Long vertexCnt = g.V().count().next();", 报错如下:

Exception in thread "main" java.util.concurrent.CompletionException: org.apache.tinkerpop.gremlin.driver.exception.ResponseException: The traversal source [g] for alias [g] is not configured on the server.at java.util.concurrent.CompletableFuture.reportJoin(CompletableFuture.java:375)at java.util.concurrent.CompletableFuture.join(CompletableFuture.java:1934)at org.apache.tinkerpop.gremlin.driver.ResultSet.one(ResultSet.java:123)at org.apache.tinkerpop.gremlin.driver.ResultSet$1.hasNext(ResultSet.java:175)at org.apache.tinkerpop.gremlin.driver.ResultSet$1.next(ResultSet.java:182)at org.apache.tinkerpop.gremlin.driver.ResultSet$1.next(ResultSet.java:169)at org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteTraversal$TraverserIterator.next(DriverRemoteTraversal.java:115)at org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteTraversal$TraverserIterator.next(DriverRemoteTraversal.java:100)at org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteTraversal.nextTraverser(DriverRemoteTraversal.java:92)at org.apache.tinkerpop.gremlin.process.remote.traversal.step.map.RemoteStep.processNextStart(RemoteStep.java:80)at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:135)at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:40)at org.apache.tinkerpop.gremlin.process.traversal.util.DefaultTraversal.next(DefaultTraversal.java:249)at Test2.test2(Test2.java:28)at Test2.main(Test2.java:20)
Caused by: org.apache.tinkerpop.gremlin.driver.exception.ResponseException: The traversal source [g] for alias [g] is not configured on the server.at org.apache.tinkerpop.gremlin.driver.Handler$GremlinResponseHandler.channelRead0(Handler.java:245)at org.apache.tinkerpop.gremlin.driver.Handler$GremlinResponseHandler.channelRead0(Handler.java:200)at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)at org.apache.tinkerpop.gremlin.driver.Handler$GremlinSaslAuthenticationHandler.channelRead0(Handler.java:126)at org.apache.tinkerpop.gremlin.driver.Handler$GremlinSaslAuthenticationHandler.channelRead0(Handler.java:68)at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93)at io.netty.handler.codec.http.websocketx.Utf8FrameValidator.channelRead(Utf8FrameValidator.java:89)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:327)at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:299)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:722)at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:658)at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:584)at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:496)at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:995)at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)at java.lang.Thread.run(Thread.java:745)

1.1 初始化hugegraph存储

./bin/init-store.sh
#~/hugegraph/hugegraph-0.12.0/bin/init-store.sh#执行后,将会多出目录rocksdb-datatree -L 2 ~/hugegraph/hugegraph-0.12.0/rocksdb-data/
"""
rocksdb-data/
├── g
│   ├── 000006.log
│   ├── CURRENT
│   ├── IDENTITY
│   ├── LOCK
│   ├── LOG
│   ├── LOG.old.1661579557252372
│   ├── MANIFEST-000005
│   ├── OPTIONS-000008
│   └── OPTIONS-000010
├── m
│   ├── 000006.log
│   ├── CURRENT
│   ├── IDENTITY
│   ├── LOCK
│   ├── LOG
│   ├── LOG.old.1661579555337140
│   ├── MANIFEST-000005
│   ├── OPTIONS-000008
│   └── OPTIONS-000010
└── s├── 000006.log├── CURRENT├── IDENTITY├── LOCK├── LOG├── LOG.old.1661579555688062├── MANIFEST-000005├── OPTIONS-000008└── OPTIONS-000010"""

1.2 启动hugegraph服务

./bin/start-hugegraph.sh
#~/hugegraph/hugegraph-0.12.0/bin/start-hugegraph.shjps
#35673 HugeGraphServer#huge web rest api:
wget http://localhost:8080

2.启动hugegraph-hubble(web界面)

cd ~/hugegraph/hugegraph-hubble-1.6.0/

2.1修改为允许外部访问web界面

#find conf -type f |xargs -I@ grep -Hn localhost  @sed -i "s/server.host=localhost/server.host=0.0.0.0/g" conf/hugegraph-hubble.properties
#~/hugegraph/hugegraph-0.12.0/conf/hugegraph-hubble.properties

2.2 启动hugegraph web服务

./bin/start-hubble.sh
#~/hugegraph/hugegraph-0.12.0/bin/start-hubble.shjps
#36640 HugeGraphHubble
#35673 HugeGraphServersudo netstat -lntp  | grep java
#tcp6       0      0 :::8088                 :::*                    LISTEN      36640/java
#tcp6       0      0 :::8080                 :::*                    LISTEN      35673/java
#tcp6       0      0 127.0.0.1:8182          :::*                    LISTEN      35673/java#浏览器访问 hugegraph web界面:http://10.11.1.113:8088/

web界面创建图

在这里插入图片描述

注意 hubbleweb界面此时并不知道本机的hugegraph web服务8080端口的存在,所以要添加把本机服务添加到web界面上:
web点击创建图
在这里插入图片描述

hugegraph的client 语言支持貌似较弱(只有java client, 而且使用人数很少. 更没有官方py client) ,故而放弃hugegraph转向janusgraph

相关文章:

基于ubuntu 22, jdk 8x64搭建图数据库环境 hugegraph--google镜像chatgpt

基于ubuntu 22, jdk 8x64搭建图数据库环境 hugegraph download 环境 uname -a #Linux whiltez 5.15.0-46-generic #49-Ubuntu SMP Thu Aug 4 18:03:25 UTC 2022 x86_64 x86_64 x86_64 GNU/Linuxwhich javac #/adoptopen-jdk8u332-b09/bin/javac which java #/adoptopen-jdk8u33…...

4. 深度学习——优化函数

机器学习面试题汇总与解析——优化函数 本章讲解知识点 什么是优化函数?为什么要使用优化函数?详细讲解优化函数优化函数总结梯度下降算法的 batch size 总结本专栏适合于Python已经入门的学生或人士,有一定的编程基础。本专栏适合于算法工程师、机器学习、图像处理求职的学…...

docker通过nginx代理tomcat-域名重定向

通过昨天的调试&#xff0c;今天做这个域名就简单了&#xff0c; 正常我们访问网站一般都是通过域名比如&#xff0c;www.baidu.com对吧&#xff0c;有人也通过ip&#xff0c;那么这个怎么做呢&#xff1f;物理机windows可以通过域名访问虚拟机linux的nginx代理转向tomcat服务…...

CSS BFC是什么,应用实例

CSS BFC&#xff08;块级格式化上下文&#xff09;是一个Web页面渲染时生成的一种独立的渲染区域&#xff0c;它定义了一套渲染规则&#xff0c;用于控制块级盒子的布局和浮动元素与其他元素的交互。BFC可以避免出现一些常见的布局问题&#xff0c;提高页面的可靠性和可维护性。…...

一分钟秒懂人工智能对齐

文章目录 1.什么是人工智能对齐2.为什么要研究人工智能对齐3.人工智能对齐的常见方法 1.什么是人工智能对齐 人工智能对齐&#xff08;AI Alignment&#xff09;指让人工智能的行为符合人的意图和价值观。 人工智能系统可能会出现“不对齐”&#xff08;misalign&#xff09;的…...

Postman常见报错与解决方法,持续更新~

postman中文文档 基本操作&#xff1a;从控制台查看请求报错 如果 Postman 无法发送你的请求&#xff0c;或者如果它没有收到你发送请求的 API 的响应&#xff0c;你将收到一条错误消息。此消息将包含问题概述和指向控制台的链接&#xff0c;你可以在其中访问有关请求的详细信…...

出电子书了!

熟悉小灰的小伙伴们都知道&#xff0c;小灰曾经创作了三本算法有关的图书&#xff0c;分别是《漫画算法》、《漫画算法Python篇》、《漫画算法2》。 如今&#xff0c;这三本书在全网的销量超过10W册&#xff0c;可以说是IT领域最畅销的图书之一。 小灰的这三本算法书&#xff0…...

LeetCode 260. 只出现一次的数字 III 中等

题目 - 点击直达 1. 260. 只出现一次的数字 III 中等1. 题目详情1. 原题链接2. 题目要求3. 基础框架 2. 解题思路1. 思路分析2. 时间复杂度3. 代码实现 1. 260. 只出现一次的数字 III 中等 1. 题目详情 1. 原题链接 LeetCode 260. 只出现一次的数字 III 中等 2. 题目要求 …...

数据结构之红黑树

红黑树的概念 红黑树&#xff08;Red-Black Tree&#xff09;同AVL树一样, 也是一种自平衡的二叉搜索树, 但在每个结点上增加一个存储位表示结点的颜色, 可以是Red或Black, 通过对任何一条从根到叶子的路径上各个结点着色方式的限制, 红黑树确保没有一条路径会比其他路径长出俩…...

【chat】4: ubuntu20.04:数据库创建:mysql8 导入5.7表

【chat】3: ubutnu 安装mysql-8 并支持远程访问 已经支持 8.0的SQLyog 远程访问:大神2021年的文章:sql是5.7的版本,我使用的ubuntu20.04,8.0版本:chat数据库设计 C++搭建集群聊天室(七):MySQL数据库配置 及项目工程目录配置 User表,以id 唯一标识 Friend 表,自己的id…...

合并二叉树(Java)

题目描述 给你两棵二叉树&#xff1a; root1 和 root2 。 想象一下&#xff0c;当你将其中一棵覆盖到另一棵之上时&#xff0c;两棵树上的一些节点将会重叠&#xff08;而另一些不会&#xff09;。你需要将这两棵树合并成一棵新二叉树。合并的规则是&#xff1a;如果两个节点重…...

C语言 exit函数

c语言exit函数的详解_笔记大全_设计学院 (python100.com) “需要注意的是&#xff0c;在程序中使用exit函数会立即强制结束程序&#xff0c;程序内部未处理的任何资源都将不能释放&#xff0c;也就可能导致内存泄漏。因此&#xff0c;在使用exit函数之前&#xff0c;需要先释放…...

基于VPLC711的曲面外观检测XYR运动控制解决方案

市场应用背景 随着消费升级&#xff0c;产品形态正在朝着多样性和精细化方向迅速发展。这导致了对于复杂曲面轨迹加工的需求&#xff0c;包括外观检测、打磨抛光和点胶工艺控制&#xff0c;要求更高的精密度。企业必须主动满足市场需求&#xff0c;不断改进工艺&#xff0c;以…...

【LeetCode刷题-二分查找】--162.寻找峰值

162.寻找峰值 方法一&#xff1a;寻找最大值 题目保证了nums[i]≠nums[i1]&#xff0c;所以数组nums中最大值两侧的元素一定严格小于最大值本身&#xff0c;因此最大值所在的位置就是一个可行的峰值位置 class Solution {public int findPeakElement(int[] nums) {int idx 0…...

vscode调试react 最初的源码

如果直接在react项目中打点调试, 调试的是 react-dom.development.js, 而源码里这些逻辑是分散在不同的包里的,如何才能够调试 React 最初的源码呢&#xff1f; JS 代码经过编译&#xff0c;会产生目标代码&#xff0c;但同时也会产生 sourcemap。sourcemap 的作用就是映射目…...

Netty网络通信模型

传统IO模型&#xff1a; 传统IO模型就是阻塞IO&#xff0c;即处理业务逻辑的线程去进行IO&#xff0c;当然IO操作很耗时&#xff0c;然后线程就得阻塞&#xff0c;当然CPU会回收该线程的时间片&#xff0c;把该线程挂起&#xff0c;切换到其他线程去执行&#xff0c;在并发量大…...

.NET快速对接极光消息推送

什么是消息推送&#xff1f; 很多手机APP会不定时的给用户推送消息&#xff0c;例如一些新闻APP会给用户推送用户可能感兴趣的新闻&#xff0c;或者APP有更新了&#xff0c;会给用户推送是否选择更新的消息等等&#xff0c;这就是所谓的“消息推送”。 常见的一些APP消息推送…...

Doris:多源数据目录(Multi-Catalog)

目录 1.基本概念 2.基本操作 2.1 查看 Catalog 2.2 新增 Catalog 2.3 切换 Catalog 2.4 删除 Catalog 3.元数据更新 3.1手动刷新 3.2定时刷新 3.3自动刷新 4.JDBC Catalog 4.1 上传mysql驱动包 4.2 创建mysql catalog 4.3. 读取mysql数据 1.基本概念 …...

建行驻江门市分行纪检组以政治谈话压责任促发展

开展政治谈话&#xff0c;是加强“一把手”和领导班子监督、严肃党内政治生活、加强对党员领导干部日常教育管理的有效手段。 为督促“一把手”和领导班子成员依法依规履行职责、行使权力&#xff0c;推动党中央重大决策部署以及建设银行总行、广东省分行党委的决策部署在本单…...

如何从存档服务器上完全删除PDM用户

当创建新用户时使用“PDM 登录”类型&#xff08;如下图&#xff09;&#xff0c;PDM用户名和密码会存储于存档服务器的注册表中。 存档服务器的注册表位置如下&#xff1a; HKEY_LOCAL_MACHINE\SOFTWARE\SolidWorks\Applications\PDMWorks Enterprise\ArchiveServer\ConisioU…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式&#xff1a;数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新&#xff1a;构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议&#xff1a;基于LayerZero协议实现以太坊、Solana等公链资产互通&#xff0c;通过零知…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...

【JVM面试篇】高频八股汇总——类加载和类加载器

目录 1. 讲一下类加载过程&#xff1f; 2. Java创建对象的过程&#xff1f; 3. 对象的生命周期&#xff1f; 4. 类加载器有哪些&#xff1f; 5. 双亲委派模型的作用&#xff08;好处&#xff09;&#xff1f; 6. 讲一下类的加载和双亲委派原则&#xff1f; 7. 双亲委派模…...

怎么开发一个网络协议模块(C语言框架)之(六) ——通用对象池总结(核心)

+---------------------------+ | operEntryTbl[] | ← 操作对象池 (对象数组) +---------------------------+ | 0 | 1 | 2 | ... | N-1 | +---------------------------+↓ 初始化时全部加入 +------------------------+ +-------------------------+ | …...

中科院1区顶刊|IF14+:多组学MR联合单细胞时空分析,锁定心血管代谢疾病的免疫治疗新靶点

中科院1区顶刊|IF14&#xff1a;多组学MR联合单细胞时空分析&#xff0c;锁定心血管代谢疾病的免疫治疗新靶点 当下&#xff0c;免疫与代谢性疾病的关联研究已成为生命科学领域的前沿热点。随着研究的深入&#xff0c;我们愈发清晰地认识到免疫系统与代谢系统之间存在着极为复…...

IP选择注意事项

IP选择注意事项 MTP、FTP、EFUSE、EMEMORY选择时&#xff0c;需要考虑以下参数&#xff0c;然后确定后选择IP。 容量工作电压范围温度范围擦除、烧写速度/耗时读取所有bit的时间待机功耗擦写、烧写功耗面积所需要的mask layer...

Spring Boot SQL数据库功能详解

Spring Boot自动配置与数据源管理 数据源自动配置机制 当在Spring Boot项目中添加数据库驱动依赖&#xff08;如org.postgresql:postgresql&#xff09;后&#xff0c;应用启动时自动配置系统会尝试创建DataSource实现。开发者只需提供基础连接信息&#xff1a; 数据库URL格…...

Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术点解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、Spring MVC与MyBatis技术点解析 第一轮&#xff1a;基础概念问题 请解释Spring框架的核心容器是什么&#xff1f;它的作用是什么&#xff1f; 程序员JY回答&#xff1a;Spring框架的核心容器是IoC容器&#xff08;控制反转…...