前言(可略过)

最近准备写一些小项目来验证一下脑袋中的项目 因为是“小项目”,所以对于数据持久化的实现,就不想用mysql等很重的db了 而且不用考虑安全性,故首先想到的就是使用 sqlite 本地数据库即可

然后因为是使用了 springboot 框架 所以也想使用一下 springboot-jpa 来整合, 但是在搭建过程中遇到了一些坑点,故作记录,以便回顾。

pom配置

首先是依赖的项目jar包:

org.springframework.boot

spring-boot-starter-data-jpa

org.xerial

sqlite-jdbc

com.github.gwenn

sqlite-dialect

sqlite-jdbc和jpa自然不用多说,至于这个个人项目的jar: 引入他的原因是,jpa使用的 hibernate 目前是不再支持 sqlite 的 所以如果想要使用 sqlite 数据源,那么就要手写 hibernate 的方言(这也是很多文章中说的,在项目中手动建几个类的原因**(重点)**)

而洁癖的我,并不像在项目中引入无关的代码,所以找到了别人实现好的jar来使用

spring配置

application.yml的配置,网上一些配置方式是类似这样的:

eg1 eg2

spring:

jpa:

show-sql: true

hibernate:

ddl-auto: update

database-platform: org.hibernate.dialect.SQLiteDialect

datasource:

driver-class-name: org.sqlite.JDBC

url: jdbc:sqlite::resource:db/dome.db

当然对于别的文章的博主按照他们当时的配置是没问题的 但是,这里有个问题 com.github.gwenn 后续是有更新的,其中 org.hibernate.dialect.SQLiteDialect 这个类变更了包名,所以会出现配置后启动失败的情况,如:

Caused by: org.hibernate.boot.registry.classloading.spi.ClassLoadingException: Unable to load class [org.hibernate.dialect.SQLiteDialect]

https://github.com/gwenn/sqlite-dialect/blob/master/src/main/java/org/sqlite/hibernate/dialect/SQLiteDialect.java

所以我们这里的方言配置项应该是:

database-platform: org.sqlite.hibernate.dialect.SQLiteDialect

此时重新启动即可

思考

我们这里配置的 database-platform 的作用是什么呢?

是为了指定一个 hibernate 能够识别得方言路径,而官方所支持的也是类似的类的路径 故我们这里想要支持 sqlite ,就要正确的指定jar中的这个类才可以

吐槽一下** csdn,居然连个上传图片的功能都炸了,(貌似是链接阿里的oss崩了) 而且,debug的日志居然也能带到生产环境,6

(这就把博客文章迁移的计划提上来)

相关链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。