中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

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

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

文章目錄

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

1. 概述

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

Nacos 表結構如下,可以看到主要是存儲配置、用戶、租戶相關信息:

在這里插入圖片描述

2. 持久層機制

2.1 固定語句

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

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

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

在這里插入圖片描述

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

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

架構圖如下:
在這里插入圖片描述

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

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

在這里插入圖片描述

3. 案例演示

注意事項:

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

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

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

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

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

3.2 自定義插件

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

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

    <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>

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

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;}}

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

在這里插入圖片描述

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

在這里插入圖片描述

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

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

在這里插入圖片描述

3.4 插件引入

3.4.1 方式一:引入到源碼

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

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

        <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目錄下,可以看到打包后的項目:

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

在這里插入圖片描述

3.4.2 方式二:插件加載目錄

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

在這里插入圖片描述
所以可以直接將編譯后的 jar 包(可以多個)放入到 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 測試

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

在這里插入圖片描述

http://www.risenshineclean.com/news/1302.html

相關文章:

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