文章目錄
- 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,并配置相應的環境以確保順利運行。確保在每一步都仔細核對配置,以避免潛在的問題。