Spring Boot 从类路径加载 H2 db 文件

Posted

技术标签:

【中文标题】Spring Boot 从类路径加载 H2 db 文件【英文标题】:Spring boot load H2 db file from classpath 【发布时间】:2016-07-08 09:17:51 【问题描述】:

我想将预填充的 h2 db 文件与 Spring 引导应用程序打包在一起。数据库仅用于读取值。

如何加载类路径中可用的 H2 文件?我非常不确定如何设置 spring.datasource.url 以使其正常工作。

【问题讨论】:

看看这个帖子h2-database.66688.n3.nabble.com/…你可以试试jdbc:h2:zip:~/my.jar!/db 【参考方案1】:

我建议您将架构和数据导出到 SQL 脚本中,并结合 Spring Boot 的内置初始化功能使用内存 H2 DB:http://docs.spring.io/spring-boot/docs/current/reference/html/howto-database-initialization.html#howto-initialize-a-database-using-spring-jdbc

当然,如果您有一个相对较大的数据集,它可能会导致启动速度变慢,但如果是这种情况,您可能一开始就不会将它放在 JAR 中:)

【讨论】:

这是一个很好的建议,我试过了,效果很好。启动时加载相当多的sql其实还是蛮快的。

以上是关于Spring Boot 从类路径加载 H2 db 文件的主要内容,如果未能解决你的问题,请参考以下文章

Spring boot、JPA、Hibernate 和 H2 DB 测试 - 序列不起作用 - 意外的代码路径”;SQL 语句:调用 seq_my_jobs [50000-193] 的下一个值

Spring boot - h2 DB 测试多次执行脚本

如何将 ArrayList 发布到 Spring Boot H2 DB

Spring - 从类路径资源 [Beans.xml]-NoClassDefFoundError 加载 XML bean 定义

H2 DB的Spring Boot两个Datasource配置创建表和插入数据失败

从类路径打开 H2 数据库