Вы можете предоставить класс конфигурации и зарегистрировать компонент, как показано ниже:
@Configuration
public class DataSourceConfig {
@Bean
public DataSource getDataSource() {
DataSourceBuilder dataSourceBuilder = DataSourceBuilder.create();
dataSourceBuilder.driverClassName("org.h2.Driver");
dataSourceBuilder.url("jdbc:h2:mem:test");
dataSourceBuilder.username("SA");
dataSourceBuilder.password("");
return dataSourceBuilder.build();
}
}
Вы также можете указать значения в application.yml
или application.properties
в Springboot, если у вас есть spring-boot-starter-data-jpa
в качестве зависимости, и Springboot автоматически создаст компонент источника данных для вас.
application.properties
spring.datasource.url=jdbc:h2:your:url
spring.datasource.driver-class-name=org.h2.Driver
Для вашего случая ошибка:
Caused by: java.lang.NullPointerException
at org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter.determineDatabaseDialectClass(HibernateJpaVendorAdapter.java:185)
происходит потому, что метод determineDatabaseDialectClass()
возвращает класс диалекта базы данных Hibernate, или ноль, если ничего не найдено.
Официальный Документ
Итак, попробуйте добавить следующее в application.properties, чтобы установить диалект или добавить его программно:
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQLDialect
или использование программно с использованием бобов, например:
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean(){
LocalContainerEntityManagerFactoryBean factoryBean
= new LocalContainerEntityManagerFactoryBean();
factoryBean.setDataSource( this.restDataSource() );
factoryBean.setPackagesToScan( new String[ ] { "com.jverstry" } );
factoryBean.setPersistenceUnitName("MyMy");
Properties props = new Properties();
props.put("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
props.put("hibernate.hbm2ddl.auto", "create");
factoryBean.setJpaProperties(props);
return factoryBean;
}
Обычно springoot по умолчанию заботится об этом и обеспечивает реализацию по умолчанию для этого, если вы предоставили все значения в файлах свойств и т. Д. Вы также можете настроить это через xml, но так как это настройки Springboot через java, очень приветствуются.