我想知道在应用程序启动之前加载初始数据库数据的最佳方法是什么?我正在寻找的东西将用数据填充我的H2数据库。
例如,我有一个域模型“ User”,我可以通过转到/ users来访问用户,但是最初数据库中没有任何用户,所以我必须创建它们。无论如何,是否有自动用数据填充数据库的信息?
目前,我有一个由容器实例化并为我创建用户的Bean。
例:
@Component
public class DataLoader {
private UserRepository userRepository;
@Autowired
public DataLoader(UserRepository userRepository) {
this.userRepository = userRepository;
LoadUsers();
}
private void LoadUsers() {
userRepository.save(new User("lala", "lala", "lala"));
}
}
但是我非常怀疑这是最好的方法。还是?
你只需在src / main / resources文件夹中创建一个data.sql文件,它将在启动时自动执行。在此文件中,你只需添加一些插入语句,例如:
INSERT INTO users (username, firstname, lastname) VALUES
('lala', 'lala', 'lala'),
('lolo', 'lolo', 'lolo');
同样,你也可以创建一个schema.sql文件(或schema-h2.sql)来创建你的模式:
CREATE TABLE task (
id INTEGER PRIMARY KEY,
description VARCHAR(64) NOT NULL,
completed BIT NOT NULL);
尽管通常情况下你不必这样做,因为Spring引导已将Hibernate配置为基于你的实体为内存数据库创建架构。如果你确实要使用schema.sql,则必须通过将其添加到application.properties中来禁用此功能:
spring.jpa.hibernate.ddl-auto=none
可以在有关数据库初始化的文档中找到更多信息。
如果你使用的是Spring boot 2,则数据库初始化仅适用于嵌入式数据库(H2,HSQLDB等)。如果还要将其用于其他数据库,则需要更改spring.datasource.initialization-mode
属性:
spring.datasource.initialization-mode=always
如果使用多个数据库供应商,则可以根据要使用的数据库平台将文件命名为data-h2.sql或data-mysql.sql。
为了使它起作用,你必须通过以下方式配置spring.datasource.platform
属性:
spring.datasource.platform=h2
我想知道在应用程序启动之前加载初始数据库数据的最佳方法是什么?我正在寻找的是一些东西,将填补我的H2数据库与数据。 例如,我有一个域模型“user”我可以通过转到/users来访问用户,但最初数据库中没有任何用户,所以我必须创建它们。是否存在自动填充数据库的数据? 但我很怀疑这是最好的方法。还是真的?
问题内容: 我正在使用我使用android studio Tabbed Activity 创建的应用程序上工作,我选择了此活动,以便在用户滑动时从json url加载一些数据,并且我创建了另一个类,该类可以在方法上获取JSON数据,并且所有这些都可以正常工作,除非在应用程序时从调用方法的主要活动开始,并且当我调用布局时未填充任何数据时 ,我想要的是加载应用程序MainActivity时要显示的数据
> 该服务使用SpringBoot、Maven、MongoDB和Ehcache。 服务需要一个快速且频繁缓存的服务器,所以最终,我选择了Ehcache。 所有缓存都将以几乎相同的频率调用,因此在这种情况下没有热数据或冷数据。 MongoDB中的原始数据每天都会被定时器服务更新,所以我每天要做的就是将所有更新的数据加载到Ehcache中。 这些数据中的每一项都彼此有联系,就像您使用一个来查找另一个的
本文向大家介绍SpringBoot使用flyway初始化数据库,包括了SpringBoot使用flyway初始化数据库的使用技巧和注意事项,需要的朋友参考一下 概述 Flyway这款数据库版本工具就算大家没有使用过但也略有耳闻了,SpringBoot对该款工具进行集成的框架可以让我们在启动SpringBoot应用时自动去找SQL版本文件进行比对执行,但在迁移或初始化时往往还是需要先手动进行下数据库
问题内容: 我应该传递什么值来为N个项目创建有效的/ 基于结构的结构? 在中,有效数字为N(N已假定未来增长)。a的参数应该是什么?((int)(N * 0.75d),0.75d)?更多?减?更改负载系数有什么影响? 问题答案: 关于负载因子,我将简单引用HashMap javadoc : 通常,默认负载因子(.75)在时间和空间成本之间提供了很好的折衷。较高的值会减少空间开销,但会增加查找成本(