国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

如何做學(xué)校網(wǎng)站產(chǎn)品軟文模板

如何做學(xué)校網(wǎng)站,產(chǎn)品軟文模板,網(wǎng)站建設(shè)管理軟件,深圳公司招聘文章目錄 1. 概述2. 持久層機(jī)制2.1 固定語句2.2 數(shù)據(jù)源插件 3. 案例演示3.1 編譯已實(shí)現(xiàn)插件3.2 自定義插件3.3 數(shù)據(jù)庫初始化3.4 插件引入3.4.1 方式一:引入到源碼3.4.2 方式二:插件加載目錄 3.5 修改配置3.6 測(cè)試 1. 概述 在實(shí)際項(xiàng)目開發(fā)中,…

文章目錄

    • 1. 概述
    • 2. 持久層機(jī)制
      • 2.1 固定語句
      • 2.2 數(shù)據(jù)源插件
    • 3. 案例演示
      • 3.1 編譯已實(shí)現(xiàn)插件
      • 3.2 自定義插件
      • 3.3 數(shù)據(jù)庫初始化
      • 3.4 插件引入
        • 3.4.1 方式一:引入到源碼
        • 3.4.2 方式二:插件加載目錄
      • 3.5 修改配置
      • 3.6 測(cè)試

1. 概述

在實(shí)際項(xiàng)目開發(fā)中,特別是政府項(xiàng)目,信創(chuàng)計(jì)劃要求使用國(guó)產(chǎn)數(shù)據(jù)庫,所以Nacos 需要支持不同類型的數(shù)據(jù)庫。

Nacos 表結(jié)構(gòu)如下,可以看到主要是存儲(chǔ)配置、用戶、租戶相關(guān)信息:

在這里插入圖片描述

2. 持久層機(jī)制

2.1 固定語句

Nacos 2.2 之前的版本中,所有的 SQL 操作的執(zhí)行是通過直接使用 JdbcTemplate 執(zhí)行固定 SQL 語句的形式,使得 SQL 語句與業(yè)務(wù)邏輯高度耦合,并且只支持 DerbyMySQL 兩種數(shù)據(jù)源。

原有模塊架構(gòu)如下:
在這里插入圖片描述
Nacos 2.1.1 源碼中執(zhí)行 SQL 示例:

在這里插入圖片描述
如果是 Nacos 2.2 之前的版本,想要兼容多種數(shù)據(jù)庫還是比較頭疼的,官方提供的多中數(shù)據(jù)源支持分支停留在 1.4.2 版本,集成時(shí)還需要改造一些代碼:

在這里插入圖片描述

2.2 數(shù)據(jù)源插件

Nacos2.2.0 版本開始,實(shí)現(xiàn)了通過 SPI 機(jī)制注入多數(shù)據(jù)源插件的方式。將 SQL 操作按照數(shù)據(jù)表進(jìn)行抽象出多個(gè) Mapper 接口,Mapper 接口的實(shí)現(xiàn)類需要按照不同的數(shù)據(jù)源編寫對(duì)應(yīng)的 SQL 方言實(shí)現(xiàn)。

架構(gòu)圖如下:
在這里插入圖片描述

在 nacos-plugin 中,可以看到包含了很多插件:
在這里插入圖片描述

數(shù)據(jù)源插件模塊 nacos-datasource-plugin-ext 中,可以看到已經(jīng)實(shí)現(xiàn)了DM(達(dá)夢(mèng))、SQLServer、OraclePostgreSQL

在這里插入圖片描述

3. 案例演示

注意事項(xiàng):

  • 目前多數(shù)據(jù)源插件處于 Beta 測(cè)試階段,其 API 及接口方法定義可能會(huì)在后續(xù)版本升級(jí)而有較大修改,請(qǐng)注意您的插件適用版本
  • 這里使用的是 Nacos 2.3.2 版本

3.1 編譯已實(shí)現(xiàn)插件

nacos-plugin 已經(jīng)實(shí)現(xiàn)了多個(gè)數(shù)據(jù)庫支持,但是目前仍然處于開發(fā)階段,需要拉取源碼自行編譯。拉取到本地后,切換到 develop 開發(fā)分支。

首先需要將 alibaba-nacos.version 修改為最新的 2.3.2 版本,原先引入的是 2.3.0-SNAPSHOT 快照版本,本地和 Maven 倉庫肯定都是沒有的:

在這里插入圖片描述
然后執(zhí)行 mvn install 安裝到本地倉庫,這里建議上傳到公司的 Maven 倉庫。

3.2 自定義插件

針對(duì) nacos-plugin 沒有實(shí)現(xiàn)的數(shù)據(jù)庫,需要自定義實(shí)現(xiàn)(這里只是簡(jiǎn)單示例,實(shí)際是復(fù)制了 nacos-postgresql-datasource-plugin-ext 相關(guān)代碼)。

在 nacos-plugin 中的 nacos-datasource-plugin-ext 下創(chuàng)建自定義插件模塊,引入數(shù)據(jù)庫驅(qū)動(dòng)、數(shù)據(jù)源插件基礎(chǔ)依賴:

    <parent><artifactId>nacos-datasource-plugin-ext</artifactId><groupId>com.alibaba.nacos</groupId><version>${revision}</version></parent><modelVersion>4.0.0</modelVersion><artifactId>nacos-postgresql-datasource-plugin-ext</artifactId><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><jdbc.postgresql.version>42.2.19</jdbc.postgresql.version></properties><dependencies><dependency><groupId>org.postgresql</groupId><artifactId>postgresql</artifactId><version>${jdbc.postgresql.version}</version></dependency><dependency><groupId>com.alibaba.nacos</groupId><artifactId>nacos-datasource-plugin-ext-base</artifactId><version>${revision}</version><scope>compile</scope></dependency></dependencies>

實(shí)現(xiàn) AbstractDatabaseDialect 數(shù)據(jù)庫方言接口,設(shè)置數(shù)據(jù)庫類型、重寫相關(guān)分頁關(guān)鍵字方法:

public class PostgresqlDatabaseDialect extends AbstractDatabaseDialect {@Overridepublic String getType() {return DatabaseTypeConstant.POSTGRESQL;}@Overridepublic String getLimitTopSqlWithMark(String sql) {return sql + " LIMIT ? ";}@Overridepublic String getLimitPageSqlWithMark(String sql) {return sql + "  OFFSET ? LIMIT ? ";}@Overridepublic String getLimitPageSql(String sql, int pageNo, int pageSize) {return sql + "  OFFSET " + getPagePrevNum(pageNo, pageSize) + " LIMIT " + pageSize;}@Overridepublic String getLimitPageSqlWithOffset(String sql, int startOffset, int pageSize){return sql + "  OFFSET " + startOffset + " LIMIT " + pageSize;}}

繼承相關(guān) BaseMapper 類,重寫一些 Mapper 接口中的特殊 SQL 方法:

在這里插入圖片描述

編寫 SPI 配置文件,引入方言類、自定義 Mapper ,提供修改后對(duì)應(yīng)的數(shù)據(jù)庫初始化SQL腳本:

在這里插入圖片描述

3.3 數(shù)據(jù)庫初始化

這里使用 PostgreSQL進(jìn)行演示,新建數(shù)據(jù)庫,找到對(duì)應(yīng)的腳本執(zhí)行即可:

在這里插入圖片描述

3.4 插件引入

3.4.1 方式一:引入到源碼

Nacos 2.3.2 源碼中的 plugin/datasource/pom.xml 文件中,引入插件依賴:

在這里插入圖片描述
這里只引入了 PostgreSQL ,也可以引入多個(gè):

        <dependency><groupId>com.alibaba.nacos</groupId><artifactId>nacos-postgresql-datasource-plugin-ext</artifactId><version>1.0.0-SNAPSHOT</version></dependency>

執(zhí)行打包命令:

mvn -Prelease-nacos -Dmaven.test.skip=true -Dpmd.skip=true -Drat.skip=true -Dcheckstyle.skip=true clean install -U

在源碼 nacos-2.3.2\distribution\target\nacos-server-2.3.2\nacos目錄下,可以看到打包后的項(xiàng)目:

在這里插入圖片描述
可以查看 nacos-server.jar 中是否已包含當(dāng)前數(shù)據(jù)庫驅(qū)動(dòng):

在這里插入圖片描述

3.4.2 方式二:插件加載目錄

Nacos 的啟動(dòng)腳本中,可以看到有一個(gè) loader.path 啟動(dòng)參數(shù), Nacos 支持通過指定路徑加載插件:

在這里插入圖片描述
所以可以直接將編譯后的 jar 包(可以多個(gè))放入到 nacos/plugins 目錄中:

在這里插入圖片描述

3.5 修改配置

修改 application.properties 配置文件,添加數(shù)據(jù)庫配置:

### Deprecated configuration property, it is recommended to use `spring.sql.init.platform` replaced.
# spring.datasource.platform=mysql
spring.sql.init.platform=postgresql### Count of DB:
db.num=1### Connect URL of DB:
db.url.0=jdbc:postgresql://127.0.0.1:5432/nacos?tcpKeepAlive=true&reWriteBatchedInserts=true&ApplicationName=nacos_java
db.user=postgres
db.password=123456### Connection pool configuration: hikariCP
db.pool.config.driverClassName=org.postgresql.Driver
db.pool.config.connectionTimeout=30000
db.pool.config.validationTimeout=10000
db.pool.config.maximumPoolSize=20
db.pool.config.minimumIdle=2
#如果是 oracle 則需要改為 SELECT * FROM dual
#db.pool.config.connectionTestQuery=SELECT 1

3.6 測(cè)試

啟動(dòng) Nacos ,添加配置、用戶,查看數(shù)據(jù)庫:

在這里插入圖片描述

http://m.aloenet.com.cn/news/1302.html

相關(guān)文章:

  • 做彩票網(wǎng)站程序違法嗎寧波seo超級(jí)外鏈工具
  • 部門網(wǎng)站建設(shè)個(gè)人總結(jié)網(wǎng)站客服
  • 做婦產(chǎn)科網(wǎng)站優(yōu)化大師電視版
  • 一定要知道的網(wǎng)站培訓(xùn)機(jī)構(gòu)需要什么資質(zhì)
  • 企業(yè)信息系統(tǒng)案例seo網(wǎng)上培訓(xùn)課程
  • 商務(wù)網(wǎng)站的主要內(nèi)容企業(yè)網(wǎng)站排名優(yōu)化方案
  • 一臺(tái)服務(wù)做兩個(gè)網(wǎng)站嗎搜索技巧
  • 濟(jì)南做網(wǎng)站的機(jī)構(gòu)有哪些百度關(guān)鍵詞排名聯(lián)系方式
  • 影視網(wǎng)站怎么做原創(chuàng)百度推廣優(yōu)化排名
  • php購(gòu)物網(wǎng)站搜索欄怎么做怎么樣把廣告做在百度上
  • 教育網(wǎng)站建設(shè)解決方案公司網(wǎng)站建設(shè)服務(wù)機(jī)構(gòu)
  • 安陽網(wǎng)站制作如何增加網(wǎng)站權(quán)重
  • 在線教育網(wǎng)站模板網(wǎng)絡(luò)公司網(wǎng)絡(luò)營(yíng)銷推廣方案
  • 網(wǎng)站版權(quán) 備案icp網(wǎng)絡(luò)公司名字大全
  • 填空秒懂網(wǎng)站女生seo專員很難嗎為什么
  • 長(zhǎng)沙3合1網(wǎng)站建設(shè)寧波seo關(guān)鍵詞排名優(yōu)化
  • 做哪個(gè)網(wǎng)站的推廣最好網(wǎng)絡(luò)營(yíng)銷電子版教材
  • b2b商貿(mào)網(wǎng)站系統(tǒng)域名反查
  • 新媒體運(yùn)營(yíng)師商丘seo
  • 汕頭網(wǎng)址模板建站培訓(xùn)學(xué)校機(jī)構(gòu)有哪些
  • 兼職建設(shè)網(wǎng)站西安自動(dòng)seo
  • 快捷的網(wǎng)站建設(shè)排行榜百度seo關(guān)鍵詞排名查詢
  • 做爰全過程免費(fèi)狐貍網(wǎng)站seo網(wǎng)站優(yōu)化流程
  • ppt做視頻模板下載網(wǎng)站有哪些100個(gè)關(guān)鍵詞
  • 自己做網(wǎng)站嗎百度店鋪怎么入駐
  • 重慶網(wǎng)站制seo關(guān)鍵詞怎么選
  • 網(wǎng)頁制作教程百度云網(wǎng)頁seo優(yōu)化
  • 九江網(wǎng)站建設(shè)優(yōu)化公司營(yíng)銷的方法手段有哪些
  • 亞馬遜網(wǎng)網(wǎng)站建設(shè)規(guī)劃報(bào)告微信客戶管理
  • 福田做網(wǎng)站報(bào)價(jià)網(wǎng)站優(yōu)化推廣方法