96SEO 2026-02-23 14:32 11
nacos-datasource-plugin模块修改重点2.4.1

com.alibaba.nacos.plugin.datasource.mapper.Mapper修改2.5
Nacos2.2.0适配Oracle12C-建表ddl语句2.7
dependencygroupIdcom.oracle.ojdbc/groupIdartifactIdojdbc8/artifactIdversion${ojdbc.version}/version/dependency2.2.2
dependencygroupIdcom.oracle.ojdbc/groupIdartifactIdojdbc8/artifactId/dependency2.3
修改类config/src/main/java/com/alibaba/nacos/config/server/service/datasource/ExternalDataSourceProperties.java
http://www.apache.org/licenses/LICENSE-2.0**
com.alibaba.nacos.config.server.service.datasource;import
com.alibaba.nacos.common.utils.Preconditions;
com.alibaba.nacos.common.utils.StringUtils;
com.zaxxer.hikari.HikariDataSource;
org.apache.commons.collections.CollectionUtils;
org.springframework.boot.context.properties.bind.Bindable;
org.springframework.boot.context.properties.bind.Binder;
org.springframework.core.env.Environment;import
com.alibaba.nacos.common.utils.CollectionUtils.getOrDefault;/***
(StringUtils.isBlank(testQuery))
(StringUtils.isBlank(jdbcDriverName))
HikariDataSource}*/ListHikariDataSource
ArrayList();Binder.get(environment).bind(db,
Bindable.ofInstance(this));Preconditions.checkArgument(Objects.nonNull(num),
null);Preconditions.checkArgument(CollectionUtils.isNotEmpty(user),
null);Preconditions.checkArgument(CollectionUtils.isNotEmpty(password),
1;Preconditions.checkArgument(url.size()
index);DataSourcePoolProperties
DataSourcePoolProperties.build(environment);if
(StringUtils.isEmpty(poolProperties.getDataSource().getDriverClassName()))
{poolProperties.setDriverClassName(jdbcDriverName);}poolProperties.setJdbcUrl(url.get(index).trim());poolProperties.setUsername(getOrDefault(user,
user.get(0)).trim());poolProperties.setPassword(getOrDefault(password,
password.get(0)).trim());HikariDataSource
poolProperties.getDataSource();if
(StringUtils.isEmpty(ds.getConnectionTestQuery()))
{ds.setConnectionTestQuery(testQuery);}dataSources.add(ds);callback.accept(ds);}Preconditions.checkArgument(CollectionUtils.isNotEmpty(dataSources),
修改类plugin/datasource/src/main/java/com/alibaba/nacos/plugin/datasource/constants/DataSourceConstant.java
http://www.apache.org/licenses/LICENSE-2.0**
com.alibaba.nacos.plugin.datasource.constants;/***
在plugin/datasource/src/main/java/com/alibaba/nacos/plugin/datasource/impl/再在oracle目录新增实现类各个类代码如下
http://www.apache.org/licenses/LICENSE-2.0**
com.alibaba.nacos.plugin.datasource.impl.oracle;import
com.alibaba.nacos.plugin.datasource.constants.DataSourceConstant;
com.alibaba.nacos.plugin.datasource.constants.TableConstant;
com.alibaba.nacos.plugin.datasource.mapper.AbstractMapper;
com.alibaba.nacos.plugin.datasource.mapper.ConfigInfoAggrMapper;import
{datumString.append(\).append(datum).append(,);}datumString.deleteCharAt(datumString.length()
);}sql.append(?);}sql.append());return
data_id,group_id,tenant_id,datum_id,app_name,content
findConfigInfoAggrByPageFetchRows(int
data_id,group_id,tenant_id,datum_id,app_name,content,
config_info_aggr;}Overridepublic
TableConstant.CONFIG_INFO_AGGR;}Overridepublic
http://www.apache.org/licenses/LICENSE-2.0**
com.alibaba.nacos.plugin.datasource.impl.oracle;import
com.alibaba.nacos.plugin.datasource.constants.DataSourceConstant;
com.alibaba.nacos.plugin.datasource.constants.TableConstant;
com.alibaba.nacos.plugin.datasource.mapper.AbstractMapper;
com.alibaba.nacos.plugin.datasource.mapper.ConfigInfoBetaMapper;/***
findAllConfigInfoBetaForDumpAllFetchRows(int
t.id,data_id,group_id,tenant_id,app_name,content,md5,gmt_modified,beta_ips,encrypted_data_key
TableConstant.CONFIG_INFO_BETA;}Overridepublic
http://www.apache.org/licenses/LICENSE-2.0**
com.alibaba.nacos.plugin.datasource.impl.oracle;import
com.alibaba.nacos.common.utils.CollectionUtils;
com.alibaba.nacos.common.utils.StringUtils;
com.alibaba.nacos.plugin.datasource.constants.DataSourceConstant;
com.alibaba.nacos.plugin.datasource.constants.TableConstant;
com.alibaba.nacos.plugin.datasource.mapper.AbstractMapper;
com.alibaba.nacos.plugin.datasource.mapper.ConfigInfoMapper;import
findConfigInfoByAppFetchRows(int
id,data_id,group_id,tenant_id,app_name,content,
findAllConfigInfoBaseFetchRows(int
t.id,data_id,group_id,content,md5
id,data_id,group_id,tenant_id,app_name,content,md5,gmt_modified,type,encrypted_data_key
gmt_modified,encrypted_data_key
findChangeConfigCountRows(MapString,
(!StringUtils.isBlank(tenantTmp))
(!StringUtils.isBlank(appName))
findChangeConfigFetchRows(MapString,
id,data_id,group_id,tenant_id,app_name,content,type,md5,gmt_modified
(!StringUtils.isBlank(tenantTmp))
(!StringUtils.isBlank(appName))
listGroupKeyMd5ByPageFetchRows(int
t.id,data_id,group_id,tenant_id,app_name,md5,type,gmt_modified,encrypted_data_key
findAllConfigInfo4Export(ListLong
id,data_id,group_id,tenant_id,app_name,content,type,md5,gmt_create,gmt_modified,src_user,src_ip,
c_desc,c_use,effect,c_schema,encrypted_data_key
(!CollectionUtils.isEmpty(ids))
);}where.append(?);paramList.add(ids.get(i));}where.append()
(!StringUtils.isBlank(params.get(DATA_ID)))
(StringUtils.isNotBlank(params.get(GROUP)))
(StringUtils.isNotBlank(params.get(APP_NAME)))
findConfigInfoBaseLikeCountRows(MapString,
(!StringUtils.isBlank(params.get(DATA_ID)))
(!StringUtils.isBlank(params.get(GROUP)))
(!StringUtils.isBlank(params.get(CONTENT)))
findConfigInfoBaseLikeFetchRows(MapString,
id,data_id,group_id,tenant_id,content,
(!StringUtils.isBlank(params.get(DATA_ID)))
(!StringUtils.isBlank(params.get(GROUP)))
(!StringUtils.isBlank(params.get(CONTENT)))
findConfigInfo4PageCountRows(MapString,
(StringUtils.isNotBlank(dataId))
(StringUtils.isNotBlank(group))
(StringUtils.isNotBlank(appName))
findConfigInfo4PageFetchRows(MapString,
id,data_id,group_id,tenant_id,app_name,content,type,encrypted_data_key,
(StringUtils.isNotBlank(dataId))
(StringUtils.isNotBlank(group))
(StringUtils.isNotBlank(appName))
findConfigInfoBaseByGroupFetchRows(int
findConfigInfoLike4PageCountRows(MapString,
(!StringUtils.isBlank(appName))
(!StringUtils.isBlank(content))
findConfigInfoLike4PageFetchRows(MapString,
id,data_id,group_id,tenant_id,app_name,content,encrypted_data_key,
(!StringUtils.isBlank(appName))
(!StringUtils.isBlank(content))
t.id,data_id,group_id,tenant_id,app_name,content,md5
ID,data_id,group_id,tenant_id,app_name,content,md5
removeConfigInfoByIdsAtomic(int
TableConstant.CONFIG_INFO;}Overridepublic
DataSourceConstant.ORCLE;}Overridepublic
src_ip?,src_user?,gmt_modified?,
app_name?,c_desc?,c_use?,effect?,type?,c_schema?
http://www.apache.org/licenses/LICENSE-2.0**
com.alibaba.nacos.plugin.datasource.impl.oracle;import
com.alibaba.nacos.plugin.datasource.constants.DataSourceConstant;
com.alibaba.nacos.plugin.datasource.constants.TableConstant;
com.alibaba.nacos.plugin.datasource.mapper.AbstractMapper;
com.alibaba.nacos.plugin.datasource.mapper.ConfigInfoTagMapper;/***
findAllConfigInfoTagForDumpAllFetchRows(int
t.id,data_id,group_id,tenant_id,tag_id,app_name,content,md5,gmt_modified
TableConstant.CONFIG_INFO_TAG;}Overridepublic
5.ConfigTagsRelationMapperByOracle
http://www.apache.org/licenses/LICENSE-2.0**
com.alibaba.nacos.plugin.datasource.impl.oracle;import
com.alibaba.nacos.common.utils.StringUtils;
com.alibaba.nacos.plugin.datasource.constants.DataSourceConstant;
com.alibaba.nacos.plugin.datasource.constants.TableConstant;
com.alibaba.nacos.plugin.datasource.mapper.AbstractMapper;
com.alibaba.nacos.plugin.datasource.mapper.ConfigTagsRelationMapper;import
ConfigTagsRelationMapperByOracle
findConfigInfo4PageCountRows(final
params.get(group);StringBuilder
(StringUtils.isNotBlank(dataId))
(StringUtils.isNotBlank(group))
(StringUtils.isNotBlank(appName))
);}where.append(?);}where.append()
findConfigInfo4PageFetchRows(MapString,
params.get(group);StringBuilder
a.id,a.data_id,a.group_id,a.tenant_id,a.app_name,a.content,
(StringUtils.isNotBlank(dataId))
(StringUtils.isNotBlank(group))
(StringUtils.isNotBlank(appName))
);}where.append(?);}where.append()
findConfigInfoLike4PageCountRows(final
params.get(group);StringBuilder
(!StringUtils.isBlank(appName))
(!StringUtils.isBlank(content))
);}where.append(?);}where.append()
findConfigInfoLike4PageFetchRows(final
params.get(group);StringBuilder
a.id,a.data_id,a.group_id,a.tenant_id,a.app_name,a.content,
(!StringUtils.isBlank(appName))
(!StringUtils.isBlank(content))
);}where.append(?);}where.append()
TableConstant.CONFIG_TAGS_RELATION;}Overridepublic
http://www.apache.org/licenses/LICENSE-2.0**
com.alibaba.nacos.plugin.datasource.impl.oracle;import
com.alibaba.nacos.plugin.datasource.constants.DataSourceConstant;
com.alibaba.nacos.plugin.datasource.constants.TableConstant;
com.alibaba.nacos.plugin.datasource.mapper.AbstractMapper;
com.alibaba.nacos.plugin.datasource.mapper.GroupCapacityMapper;/***
TableConstant.GROUP_CAPACITY;}Overridepublic
DataSourceConstant.ORCLE;}Overridepublic
incrementUsageByWhereQuotaEqualZero()
incrementUsageByWhereQuotaNotEqualZero()
7.HistoryConfigInfoMapperByOracle
http://www.apache.org/licenses/LICENSE-2.0**
com.alibaba.nacos.plugin.datasource.impl.oracle;import
com.alibaba.nacos.plugin.datasource.constants.DataSourceConstant;
com.alibaba.nacos.plugin.datasource.constants.TableConstant;
com.alibaba.nacos.plugin.datasource.mapper.AbstractMapper;
com.alibaba.nacos.plugin.datasource.mapper.HistoryConfigInfoMapper;/***
HistoryConfigInfoMapperByOracle
nid,data_id,group_id,tenant_id,app_name,src_ip,src_user,op_type,gmt_create,gmt_modified
nid,data_id,group_id,tenant_id,app_name,content,md5,src_user,src_ip,op_type,gmt_create,gmt_modified
TableConstant.HIS_CONFIG_INFO;}Overridepublic
http://www.apache.org/licenses/LICENSE-2.0**
com.alibaba.nacos.plugin.datasource.impl.oracle;import
com.alibaba.nacos.plugin.datasource.constants.DataSourceConstant;
com.alibaba.nacos.plugin.datasource.constants.TableConstant;
com.alibaba.nacos.plugin.datasource.mapper.AbstractMapper;
com.alibaba.nacos.plugin.datasource.mapper.TenantCapacityMapper;/***
TableConstant.TENANT_CAPACITY;}Overridepublic
DataSourceConstant.ORCLE;}Overridepublic
incrementUsageWithDefaultQuotaLimit()
http://www.apache.org/licenses/LICENSE-2.0**
com.alibaba.nacos.plugin.datasource.impl.oracle;import
com.alibaba.nacos.plugin.datasource.constants.DataSourceConstant;
com.alibaba.nacos.plugin.datasource.constants.TableConstant;
com.alibaba.nacos.plugin.datasource.mapper.AbstractMapper;
com.alibaba.nacos.plugin.datasource.mapper.TenantInfoMapper;/***
TableConstant.TENANT_INFO;}Overridepublic
com.alibaba.nacos.plugin.datasource.mapper.Mapper修改
修改类plugin/datasource/src/main/resources/META-INF/services/com.alibaba.nacos.plugin.datasource.mapper.Mapper
http://www.apache.org/licenses/LICENSE-2.0
#com.alibaba.nacos.plugin.datasource.impl.mysql.ConfigInfoAggrMapperByMySql
com.alibaba.nacos.plugin.datasource.impl.mysql.ConfigInfoBetaMapperByMySql
com.alibaba.nacos.plugin.datasource.impl.mysql.ConfigInfoMapperByMySql
com.alibaba.nacos.plugin.datasource.impl.mysql.ConfigInfoTagMapperByMySql
com.alibaba.nacos.plugin.datasource.impl.mysql.ConfigTagsRelationMapperByMySql
com.alibaba.nacos.plugin.datasource.impl.mysql.HistoryConfigInfoMapperByMySql
com.alibaba.nacos.plugin.datasource.impl.mysql.TenantInfoMapperByMySql
com.alibaba.nacos.plugin.datasource.impl.mysql.TenantCapacityMapperByMySql
com.alibaba.nacos.plugin.datasource.impl.mysql.GroupCapacityMapperByMysqlcom.alibaba.nacos.plugin.datasource.impl.derby.ConfigInfoAggrMapperByDerby
com.alibaba.nacos.plugin.datasource.impl.derby.ConfigInfoBetaMapperByDerby
com.alibaba.nacos.plugin.datasource.impl.derby.ConfigInfoMapperByDerby
com.alibaba.nacos.plugin.datasource.impl.derby.ConfigInfoTagMapperByDerby
com.alibaba.nacos.plugin.datasource.impl.derby.ConfigInfoTagsRelationMapperByDerby
com.alibaba.nacos.plugin.datasource.impl.derby.HistoryConfigInfoMapperByDerby
com.alibaba.nacos.plugin.datasource.impl.derby.TenantInfoMapperByDerby
com.alibaba.nacos.plugin.datasource.impl.derby.TenantCapacityMapperByDerby
com.alibaba.nacos.plugin.datasource.impl.derby.GroupCapacityMapperByDerbycom.alibaba.nacos.plugin.datasource.impl.oracle.ConfigInfoAggrMapperByOracle
com.alibaba.nacos.plugin.datasource.impl.oracle.ConfigInfoBetaMapperByOracle
com.alibaba.nacos.plugin.datasource.impl.oracle.ConfigInfoMapperByOracle
com.alibaba.nacos.plugin.datasource.impl.oracle.ConfigInfoTagMapperByOracle
com.alibaba.nacos.plugin.datasource.impl.oracle.ConfigTagsRelationMapperByOracle
com.alibaba.nacos.plugin.datasource.impl.oracle.HistoryConfigInfoMapperByOracle
com.alibaba.nacos.plugin.datasource.impl.oracle.TenantInfoMapperByOracle
com.alibaba.nacos.plugin.datasource.impl.oracle.TenantCapacityMapperByOracle
com.alibaba.nacos.plugin.datasource.impl.oracle.GroupCapacityMapperByOracle2.5
修改配置文件console/src/main/resources/application.properties
nacos.plugin.datasource.log.enabledtrue
db.url.0jdbc:oracle:thin:192.168.10.2:1521/xe
db.jdbcDriverNameoracle.jdbc.OracleDriver
在nacos-all下的target就会出现压缩文件了这样就相当于从nacos官网直接下载的压缩包具体nacos配置可以自行完成。
以上就是Nacos2.2.0多数据源适配oracle12C-修改Nacos源码的步骤
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback