若依將數據庫更改為SQLite

文章目錄

  • 1. 添加依賴項
  • 2. 更新配置文件 application-druid.yml
    • 2.1. 配置數據源
    • 2.2. 配置連接驗證
  • 3. 更新 MybatisPlusConfig
  • 4. 解決 mapper 中使用 sysdate() 的問題
    • 4.1. 修改 BaseEntity
    • 4.2. 修改 Mapper
  • 5. 更新 YML 配置

正文開始:
前提條件:在您的項目中已經集成了 MyBatis-Plus。

1. 添加依賴項

位置:ruoyi-admin/pom.xml

<!-- SQLite3驅動 -->
<dependency><groupId>org.xerial</groupId><artifactId>sqlite-jdbc</artifactId><version>3.36.0.3</version>
</dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.3.1</version>
</dependency>

2. 更新配置文件 application-druid.yml

2.1. 配置數據源

# 數據源配置
spring:datasource:type: com.alibaba.druid.pool.DruidDataSourcedriverClassName: org.sqlite.JDBCdruid:# 主庫數據源配置master:url: jdbc:sqlite:db\\db.sqlite3?date_string_format=yyyy-MM-dd HH:mm:ssusername:password:

注意:務必添加 date_string_format=yyyy-MM-dd HH:mm:ss,否則在某些情況下查詢時會報錯 Caused by: java.sql.SQLException: Error parsing time stamp。具體錯誤信息示例:

13:53:38.671 [restartedMain] ERROR o.s.b.SpringApplication - [reportFailure,870] - Application run failed
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'captchaController': Unsatisfied dependency expressed through field 'configService';
...
Error parsing time stamp; nested exception is java.sql.SQLException: Error parsing time stamp

2.2. 配置連接驗證

# 配置檢測連接有效性
validationQuery: SELECT 1 FROM sys_config

3. 更新 MybatisPlusConfig

在 MybatisPlusConfig 類中,配置分頁插件以支持 SQLite 數據庫:

/*** 分頁插件,自動識別數據庫類型 https://baomidou.com/guide/interceptor-pagination.html*/
public PaginationInnerInterceptor paginationInnerInterceptor() {PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();// 設置數據庫類型為SQLitepaginationInnerInterceptor.setDbType(DbType.SQLITE);// 設置最大單頁限制數量,默認500條,-1表示不限制paginationInnerInterceptor.setMaxLimit(-1L);return paginationInnerInterceptor;
}

4. 解決 mapper 中使用 sysdate() 的問題

4.1. 修改 BaseEntity

/** 當前時間 */
@Setter
@TableField(exist = false)
private Date nowDate;public Date getNowDate() {return DateUtils.getNowDate();
}

4.2. 修改 Mapper

在 SysLogininforMapper.xml 中,替換為以下內容:

<insert parameterType="SysLogininfor">INSERT INTO sys_logininfor (user_name, status, ipaddr, login_location, browser, os, msg, login_time) VALUES (#{userName}, #{status}, #{ipaddr}, #{loginLocation}, #{browser}, #{os}, #{msg}, CURRENT_TIMESTAMP)
</insert>

在 SysUserMapper.xml 中,修改更新操作:

<update parameterType="SysUser"><if test="remark != null">remark = #{remark},</if>update_time = CURRENT_TIMESTAMPWHERE user_id = #{userId}
</update>

5. 更新 YML 配置

在打包為 jar 后,您可以通過配置數據庫的路徑來靈活設置數據庫位置。示例配置如下:

url: jdbc:sqlite:.//DB//sql.db?date_string_format=yyyy-MM-dd HH:mm:ss

通過以上步驟,您便成功將項目的數據庫更改為 SQLite,并配置相應的環境以確保順利運行。確保在每一步都仔細核對配置,以避免潛在的問題。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/62612.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/62612.shtml
英文地址,請注明出處:http://en.pswp.cn/web/62612.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

OCP開閉原則

什么是OCP&#xff1f; OCP是軟件七大開發原則當中最基本的一個原則&#xff1a;開閉原則 對什么開&#xff1f;對擴展開放。 對什么閉&#xff1f;對修改關閉。 OCP原則是最核心的&#xff0c;最基本的&#xff0c;其他的六個原則都是為這個原則服務的。 OCP開閉原則的核心是…

Linux下mysql環境的搭建

1.mysql的下載 去MySQL官網下載mysql的linux壓縮包 MySQL :: Download MySQL Community Server 如果下載慢請到網盤中自行下載 通過網盤分享的文件&#xff1a;mysql-8.0.40-1.el7.x86_64.rpm-bundle.tar 鏈接: https://pan.baidu.com/s/1vUJ-VuTwer1nLPT-haQCqw?pwd6342 提…

基于Qwen2-VL模型針對LaTeX OCR任務進行微調訓練 - 多圖推理

基于Qwen2-VL模型針對LaTeX OCR任務進行微調訓練 - 多圖推理 flyfish 基于Qwen2-VL模型針對LaTeX_OCR任務進行微調訓練_-_LoRA配置如何寫 基于Qwen2-VL模型針對LaTeX_OCR任務進行微調訓練_-_單圖推理 基于Qwen2-VL模型針對LaTeX_OCR任務進行微調訓練_-_原模型_單圖推理 基于Q…

圖像識別 | Matlab基于卷積神經網絡(CNN)的寶可夢識別源程序,GUI界面。附詳細的運行說明。

圖像識別 | Matlab基于卷積神經網絡(CNN)的寶可夢識別源程序&#xff0c;GUI界面。附詳細的運行說明。 目錄 圖像識別 | Matlab基于卷積神經網絡(CNN)的寶可夢識別源程序&#xff0c;GUI界面。附詳細的運行說明。預測效果基本介紹程序設計參考資料 預測效果 基本介紹 Matlab基…

設置IMX6ULL開發板的網卡IP的兩種方法(臨時生效和永久有效兩種方法)

設置開發板網卡的IP&#xff0c;有兩種方法。 方法一&#xff1a;臨時生效 第一種方式是臨時設置&#xff0c;只有本次有效&#xff0c;重啟后又要重新設&#xff0c;命令為&#xff1a; ifconfig eth0 192.168.5.9設置成功后可以使用ifconfig命令來查看已設置的 IP 地址。 …

22. Three.js案例-創建旋轉的圓環面

22. Three.js案例-創建旋轉的圓環面 實現效果 知識點 WebGLRenderer (WebGL渲染器) THREE.WebGLRenderer 是Three.js中最常用的渲染器&#xff0c;用于將場景渲染到WebGL畫布上。 構造器 new THREE.WebGLRenderer(parameters) 參數類型描述parametersObject可選參數對象&…

【D3.js in Action 3 精譯_044】5.1 餅圖和環形圖的創建(四):數據標簽的添加

當前內容所在位置&#xff1a; 第五章 餅圖布局與堆疊布局 ?? 5.1 餅圖和環形圖的創建 ?? 5.1.1 準備階段&#xff08;一&#xff09;5.1.2 餅圖布局生成器&#xff08;二&#xff09;5.1.3 圓弧的繪制&#xff08;三&#xff09; ??5.1.4 數據標簽的添加&#xff08;四&…

java全棧day13-后端Web實戰2

接上述查詢部門實現&#xff0c;完成后續要求 一、統一響應結果 1.1步驟 資料如下 對一開始的代碼修改如下 結果如下 1.2測試 指定請求方式 結果 小結 二、前后端聯調測試 資料如下&#xff1a; (不行&#xff0c;一定要不帶空格和不帶中文&#xff0c;要不然啟動不了試了半天…

AWS sdk for s3 - S3 client

背景 在產品環境上通過 http 的方式訪問 aws s3 是不安全的&#xff0c;需要使用aws sdk 提供的接口來訪問 技術實現 項目中使用的是java 1. 在gradel 中引用對應的aws 包 implementation ‘software.amazon.awssdk:s3:2.20.80’ // aws sdk implementation ‘software.am…

Android的SurfaceView和TextureView介紹

文章目錄 前言一、什么是SurfaceView &#xff1f;1.1 SurfaceView 使用示例1.2 SurfaceView 源碼概述1.3 SurfaceView 的構造與初始化1.4 SurfaceHolder.Callback 回調接口1.5 SurfaceView 渲染機制 二、什么是TextureView&#xff1f;2.1 TextureView 使用示例2.2 TextureVie…

vscode 排除文件夾搜索

排除的文件夾 node_modules/,dist/

優雅的@ObservedV2和@Trace裝飾器

Hello&#xff0c;大家好&#xff0c;我是 V 哥。在HarmonyOS NEXT開發中&#xff0c;ObservedV2裝飾器和Trace裝飾器是用于狀態管理的兩個裝飾器&#xff0c;它們在HarmonyOS應用開發中用于增強對類對象中屬性的觀測能力。如果你學過觀察者模式的原理&#xff0c;你會更容易理…

備戰藍橋第一天 驗證回文串 楊輝三角

LCR 018. 驗證回文串 - 力扣&#xff08;LeetCode&#xff09; 涉及的函數&#xff1a; int isalnum ( int c ); 檢查字符是否為字母數字 int tolower ( int c ); 將大寫字母轉換為小寫 void reverse (BidirectionalIterator first, BidirectionalIterator last); 反轉區域中…

【實戰】提升List性能方法有幾何

在內存中的 List<T> 上使用 LINQ 查詢時&#xff0c;加索引并不像數據庫那樣有內置支持&#xff0c;但可以通過以下方式提高查詢性能&#xff1a; 1. 手動構建索引 可以手動構建一個字典 (Dictionary<TKey, TValue>)&#xff0c;將需要查詢的字段作為鍵&#xff0…

一款免費、簡單、快速的JS打印插件,web 打印組件,基于JavaScript開發,支持數據分組,快速分頁批量預覽,打印,轉pdf,移動端,PC端

前言 在數字化辦公時代&#xff0c;打印需求呈現多樣化和復雜化的趨勢。現有的打印軟件往往存在cao作繁瑣、兼容性差、功能單一等問題&#xff0c;難以滿足現代企業高效、靈活的打印需求。 為了解決這些痛點&#xff0c;一款簡單、高效、多功能的打印插件成為了迫切需求。 介…

Python pywin32庫詳解

一、引言 在Python編程中&#xff0c;有時候需要與Windows操作系統進行交互&#xff0c;執行一些特定的系統操作或操作 Windows 應用程序。這時&#xff0c;pywin32庫就成為了一個非常強大的工具。pywin32庫提供了對Windows API的訪問&#xff0c;使得Python開發者能夠在Windo…

Uniapp的vue、nvue、uvue后綴名區別

在 UniApp 中&#xff0c;.vue、.nvue 和 .uvue 是不同的文件后綴名&#xff0c;每個文件格式的使用場景和兼容性略有不同。下面是每個文件后綴的詳細解釋以及它們的兼容性&#xff1a; 1. .vue 文件 定義&#xff1a;.vue 是標準的 Vue 單文件組件格式&#xff0c;主要用于基…

TCP/IP雜記

TCP三次握手、四次揮手 從應用角度&#xff0c;不用多考慮為什么有三次&#xff0c;遵循標準即可。 ubuntu 下 wireshark安裝&#xff1a; sudo add-apt-repository universe sudo apt install wireshark 三次握手實證&#xff1a; 第一次握手的情況如下&#xff1a;&#…

Vue前端開發-接收跳轉參數

路由攜帶參數跳轉到目標頁面后&#xff0c;頁面組件可以接收到攜帶傳入的參數&#xff0c;接收的方式與攜帶的方式相關&#xff0c;如果是采用查詢字符串方式攜帶&#xff0c;那么可以通過路由中的query對象獲取到參數&#xff0c;如果是其他方式&#xff0c;通常都是通過路由中…

力扣--LCR 177.撞色搭配

題目 整數數組 sockets 記錄了一個襪子禮盒的顏色分布情況&#xff0c;其中 sockets[i] 表示該襪子的顏色編號。禮盒中除了一款撞色搭配的襪子&#xff0c;每種顏色的襪子均有兩只。請設計一個程序&#xff0c;在時間復雜度 O(n)&#xff0c;空間復雜度O(1) 內找到這雙撞色搭配…