当前位置:网站首页>Nacos适配oracle11g-修改Nacos源码
Nacos适配oracle11g-修改Nacos源码
2022-06-23 06:23:00 【qq_37279783】
nacos默认只支持mysql数据库,要适配oracle数据源,必须得修改源码后再编译部署
一.源码获取
下载nacos: link源码,下载完成之后将分支切换到 feature_multiple_datasource_support
二. jar包引入及更换
由于此分支支持oracle12c,需要更换驱动包版本
1.nacos-all 下pom文件修改
<properties>
...
<!-- 移除ojdbc8依赖版本 -->
<!-- <ojdbc.version>19.3.0.0</ojdbc.version>-->
<!-- 更改oracle版本为ojdbc7-->
<ojdbc.version>12.1.0.1.0</ojdbc.version>
...
</properties>
<!-- 管理依赖版本号,子项目不会默认依赖 -->
<dependencyManagement>
<dependencies>
...
<!-- oracle包 -->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc7</artifactId>
<version>${ojdbc.version}</version>
</dependency>
...
<!--移除ojdbc8依赖版本-->
<!-- <dependency>-->
<!-- <groupId>com.oracle.ojdbc</groupId>-->
<!-- <artifactId>ojdbc8</artifactId>-->
<!-- <version>${ojdbc.version}</version>-->
<!-- </dependency>-->
...
</dependencies>
</dependencyManagement>
2.nacos-config的pom文件增加引入需要支持的数据库驱动,并取消oracle高版本驱动引入
<!-- <dependency>-->
<!-- <groupId>com.oracle.ojdbc</groupId>-->
<!-- <artifactId>ojdbc8</artifactId>-->
<!-- </dependency>-->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc7</artifactId>
</dependency>
三.对数据库映射实体的主键逻辑修改【需要配合后续的序列语句使用】
因为mysql使用的是自增序列,oracle11g并不支持,所以在使用jpa时需要指定主键及使用的索引的名字,需要对实体类进行修改
1. nacos-config下
com.alibaba.nacos.config.server.modules.entity
这里只举一个示例,蓝色部分都是有修改的
需要注意的是PermissionsEntity类的resource字段,因为是oracle数据库关键字,所有在建表语句(下载建表语句)中修改成resources,需要在对应字段修改下
/**
* resource.
*/
@Column(name = "resources")
private String resource;
四.修改nacos-console配置文件application.properties
# oracle数据库配置
nacos.datasource.type=ORACLE
nacos.datasource.relational.dsList[0].url=jdbc:oracle:thin:@xxx:1521:orcl
nacos.datasource.relational.dsList[0].username=xxx
nacos.datasource.relational.dsList[0].password=xxx
nacos.datasource.relational.dsList[0].driver-class-name=oracle.jdbc.driver.OracleDriver
nacos.datasource.relational.dsList[0].hikari.connection-timeout=10000
nacos.datasource.relational.dsList[0].hikari.idle-timeout=120000
nacos.datasource.relational.dsList[0].hikari.max-lifetime=240000
nacos.datasource.relational.dsList[0].hikari.maximum-pool-size=20
nacos.datasource.relational.dsList[0].hikari.data-source-properties.cachePrepStmts=true
nacos.datasource.relational.dsList[0].hikari.data-source-properties.prepStmtCacheSize=250
nacos.datasource.relational.dsList[0].hikari.data-source-properties.prepStmtCacheSqlLimit=2048
nacos.datasource.relational.dsList[0].hikari.connection-test-query=SELECT 1 FROM dual
五.idea启动单机nacos进行调试
nacos-console模块的Nacos启动类
单机模式启动,环境变量-Dnacos.standalone=true
六.启动失败,找不到符号
如果报错找不到符号com.alibaba.nacos.consistency.entity
最简单的办法就是执行 mvn compile,原因是这个包目录是由protobuf在编译时自动生成
重新启动即可
七.访问页面,localhost:8848/nacos 用户/密码:nacos/nacos

边栏推荐
猜你喜欢
随机推荐
深度学习系列47:超分模型Real-ESRGAN
聚焦行业,赋能客户 | 博云容器云产品族五大行业解决方案发布
Deeplab V3 code structure diagram
[bull Chinese document] queue package used to process distributed jobs and messages in nodejs
899. 有序队列
正则表达式图文超详细总结不用死记硬背(上篇)
Side effects of threads in embedded real-time systems
The List
306. 累加数
[STL] summary of map usage of associated containers
别找了诸位 【十二款超级好用的谷歌插件都在这】(确定不来看看?)
【项目实训】线形箭头的变化
315. calculate the number of elements on the right that are smaller than the current element
406 double pointer (27. remove elements, 977. square of ordered array, 15. sum of three numbers, 18. sum of four numbers)
js 判断两个数组增加和减少的元素
什么是分布式?
901. 股票价格跨度
295. 数据流的中位数
Pspnet complete code implementation
Database principle experiment test questions, about book classification table

![[STL] unordered of associated container_ Map Usage Summary](/img/6a/d614f2f363fa5181c25e79ff8b0dab.png)







