java - 在 Web servlet 应用程序中使用二进制数据初始化数据库
问题描述
我有下一个使用 ddl 和 dml 的工作代码。它初始化嵌入式 H2 数据库。
@Bean
public DataSource dataSource(@Value("${jdbc.driver}") String driver,
@Value("${jdbc.url}") String url,
@Value("${jdbc.user}") String user,
@Value("${jdbc.password}") String password) {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName(driver);
dataSource.setUrl(url);
dataSource.setUsername(user);
dataSource.setPassword(password);
Resource initSchema = new ClassPathResource("schema.sql");
Resource initData = new ClassPathResource("data.sql");
DatabasePopulator databasePopulator = new ResourceDatabasePopulator(initSchema, initData);
DatabasePopulatorUtils.execute(databasePopulator, dataSource);
return dataSource;
}
@Bean
public EntityManagerFactory entityManagerFactory(DataSource dataSource) {
HibernateJpaVendorAdapter jpaVendorAdapter = new HibernateJpaVendorAdapter();
jpaVendorAdapter.setGenerateDdl(false);
jpaVendorAdapter.setShowSql(true);
LocalContainerEntityManagerFactoryBean entityManagerFactory =
new LocalContainerEntityManagerFactoryBean();
entityManagerFactory.setDataSource(dataSource);
entityManagerFactory.setJpaVendorAdapter(jpaVendorAdapter);
entityManagerFactory.setPackagesToScan("org.doit.model");
entityManagerFactory.afterPropertiesSet();
return entityManagerFactory.getObject();
}
@Bean
public JpaTransactionManager transactionManager(EntityManagerFactory entityManagerFactory) {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(entityManagerFactory);
return transactionManager;
}
请给我建议,如何在数据库中插入二进制数据,例如位于资源文件夹中的 zip 文件。我知道在单元测试中我们可以使用注释@Before,这让我们有机会做你想做的事。但是,当您使用 java config 启动您的应用程序时,该怎么做呢?
解决方案
我也面临同样的问题。 这个答案对我有用。你可以试试,我想这对你有用。
推荐阅读
- python - 在多个模型上使用 django-filters
- elasticsearch - Fluentbit 收集到 kubernetes 中 Elasticsearch 的 Serilog 日志没有正确解析 Json
- python - multiprocessing.pool 实际上做了什么?
- arrays - Typescript `custom type` 仅适用于类型世界,但实际上不适用于 `function`
- angular - 通过 Subject 将数据从服务文件传递到组件
- php - 我无法将测验结果存储在数据库中
- javascript - 使 DataTables 总计行不受排序/过滤的影响
- rabbitmq - 无法启动 RabbitMQ 服务器:dyld:未加载库:@rpath/libtinfo.6.dylib
- javascript - AES CBC:JavaScript/CryptoJS 加密 -> Golang 解密
- css - 如何不更改代码中的每个 div 图像