【问题标题】:Initialize database with binary data in web servlet app在 Web servlet 应用程序中使用二进制数据初始化数据库
【发布时间】:2021-12-12 21:50:28
【问题描述】:

我有下一个使用 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 启动您的应用程序时该怎么做。

【问题讨论】:

    标签: java spring database h2 spring-framework-beans


    【解决方案1】:

    我也遇到了同样的问题。 This 答案对我有用。你可以试试,我想这对你有用。

    【讨论】:

    • 非常奇怪的 sql 脚本会是)如果文件超过 100 字节,那么写脚本是不真实的)))
    猜你喜欢
    • 1970-01-01
    • 2011-10-27
    • 2013-03-24
    • 2018-12-30
    • 1970-01-01
    • 1970-01-01
    • 2019-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多