我们确实在弹簧上使用了很多h2,特别是对于单元测试。 但是,我们可能希望拥有一个功能齐全的原型来显示数据,而不是进行单元测试。
H2是最理想的选择,它在spring上运行良好,与大多数数据库都具有良好的语法兼容性,并且还为您提供了一个ui来检查数据。
想象一下采访任务的场景。 您希望您的示例能够以最少的审阅者配置开箱即用。 计划是启动一个应用程序并使用一些数据来运行。 在访问该应用程序之前,我们不妨向其中添加一些数据。 然后,我们需要一种适当的方法来显示添加的数据,而无需添加额外的代码。
第一步是转到spring initializr并添加Web和H2依赖项。 另外,我们将添加jdbc属性。
最终结果将给出一个build.gradle文件,如下所示。
buildscript {ext {springBootVersion = '2.0.6.RELEASE'}repositories {mavenCentral()}dependencies {classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")}
}apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'group = 'com.gkatzioura.springbooth2'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8repositories {mavenCentral()
}dependencies {implementation('org.springframework.boot:spring-boot-starter-jdbc')implementation('org.springframework.boot:spring-boot-starter-web')runtimeOnly('com.h2database:h2')testImplementation('org.springframework.boot:spring-boot-starter-test')
}
由于添加了jdbc属性,因此一旦启动应用程序,便可以执行一些模式脚本。 因此,我们需要创建一个schema.sql文件,其中包含创建模式的sql语句。
CREATE TABLE application_user (ID INT, USER_NAME VARCHAR(50), PASSWORD VARCHAR(255));
INSERT INTO application_user (ID,USER_NAME, PASSWORD) values (1,'test','password-hash');
下一步是启用h2控制台。 我们将使用yaml方法,但是您可以使用属性文件或环境变量来完成。
spring:h2:console:enabled: true
现在,一旦我们运行了Spring应用程序,我们就可以在http:// localhost:8080 / h2-console端点上导航。
我们将获得所需的默认凭据
登录后,我们可以查询在启动sql脚本中插入的用户。
而已! 这样可以为原型,面试任务和博客帖子带来奇迹!
翻译自: https://www.javacodegeeks.com/2018/11/working-prototypes-spring-boot-h2.html