Spring Boot | データベースアクセス | Hello World
データベースアクセス
spring-boot-starter-jdbcと、使用するデータベースの依存関係(org.hsqldb:hsqldbなど)を追加します。- 設定したデータベースをメモリー上で使用できます。
- データはメモリーに保存されるため、JVMを停止すると失われます。
- H2やDerbyも組み込みデータベースとして使用できます。
コードの作成
build.gradle
dependencies {
compile 'org.hsqldb:hsqldb'
compile 'org.springframework.boot:spring-boot-starter-jdbc'
}
src/main/java/sample/springboot/Main.java
package sample.springboot;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.jdbc.core.JdbcTemplate;
@SpringBootApplication
public class Main {
public static void main(String[] args) {
try (ConfigurableApplicationContext ctx = SpringApplication.run(Main.class, args)) {
Main m = ctx.getBean(Main.class);
m.method();
}
}
@Autowired
private JdbcTemplate jdbc;
public void method() {
this.jdbc.execute("CREATE TABLE TEST_TABLE (ID INTEGER NOT NULL IDENTITY, VALUE VARCHAR(256))");
this.jdbc.update("INSERT INTO TEST_TABLE (VALUE) VALUES (?)", "hoge");
this.jdbc.update("INSERT INTO TEST_TABLE (VALUE) VALUES (?)", "fuga");
this.jdbc.update("INSERT INTO TEST_TABLE (VALUE) VALUES (?)", "piyo");
List<Map<String, Object>> list = this.jdbc.queryForList("SELECT * FROM TEST_TABLE");
list.forEach(System.out::println);
}
}
実行結果
{ID=0, VALUE=hoge}
{ID=1, VALUE=fuga}
{ID=2, VALUE=piyo}
データをファイルへ保存する
- プロパティファイルで
spring.datasource.urlを定義し、JDBC接続URLを指定できます。 - HSQLDBでは、URLでファイルへ保存するかを指定します。次の設定でファイルへ保存されます。
application.properties
spring.datasource.url=jdbc:hsqldb:file:./db/testdb;shutdown=true