我的 Spring 数据库 (H2) 没有持久化
Posted
技术标签:
【中文标题】我的 Spring 数据库 (H2) 没有持久化【英文标题】:My Spring Database (H2) is not Persisting 【发布时间】:2017-08-04 20:22:33 【问题描述】:这是我的配置文件
@Configuration
@ComponentScan
public class Config
@Bean
public DataSource datasource()
return new EmbeddedDatabaseBuilder().setName("MyDB").setType(EmbeddedDatabaseType.H2).addScript("schema.sql").build();
@Bean
public JdbcOperations jdbcTemplate(DataSource ds)
return new JdbcTemplate(ds);
运行程序后,找不到“MyDB”数据库。
我知道它是一个内存数据库。如何使其嵌入,以便当我关闭程序时数据库上的数据保持不变,我可以在项目文件夹中找到“MyDB”。
【问题讨论】:
【参考方案1】:@Bean
public DataSource h2DataSource()
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName(driver);
dataSource.setUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
return dataSource;
driver: org.h2.Driver
url: jdbc:h2:file:$java.io.tmpdir/database/db_name;AUTO_SERVER=TRUE
username: user
password: pass
【讨论】:
能否请您详细说明一下答案。 不要像现在这样定义数据源,而是按照我的代码示例.. @blueray 这将创建一个基于文件的数据库。 h2database.com/html/features.html#embedded_databases以上是关于我的 Spring 数据库 (H2) 没有持久化的主要内容,如果未能解决你的问题,请参考以下文章
使用 Spring JPA 在 H2 和 Sql Server 中持久化的 Java UUID