データベースを使用するために、pom.xmlに以下の設定を追加する。
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.1.RELEASE</version> <relativePath /> <!-- lookup parent from repository --> </parent> <groupId>jp.abc</groupId> <artifactId>mydata</artifactId> <version>0.0.1-SNAPSHOT</version> <name>mydata</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.hsqldb</groupId> <artifactId>hsqldb</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.hsqldb</groupId> <artifactId>hsqldb</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
デスクトップに hsqldb.bat ファイルを作成し、以下の内容で保存する。
cd C:\(HSQLDBを保存した場所)\hsqldb\lib java -cp hsqldb.jar org.hsqldb.Server --database.0 db/mydata --dbname.0 mydata
デスクトップに hsqldbm.bat ファイルを作成し、以下の内容で保存する。
cd C:\(HSQLDBを保存した場所)\hsqldb\lib java -cp hsqldb.jar org.hsqldb.util.DatabaseManager
MyDataをデータベースとやり取りするためのインタフェースを作成する。
jp.abc パッケージを右クリックして[新規]-[インタフェース]を選択する。
名前に「MyDataRepository」を入力し、拡張インタフェースに「JpaRepository」を指定して完了する。
package jp.abc;
import org.springframework.data.jpa.repository.JpaRepository;
public interface MyDataRepository extends JpaRepository<MyData, Long> {
}
IndexControllerを修正する。
package jp.abc;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class IndexController {
@Autowired
MyDataRepository myDataRepository;
@RequestMapping("/")
public ModelAndView index(ModelAndView mav) {
MyData myData = new MyData();
myData.setName("山田花子");
myData.setMail("hanako@example.com");
myData.setAge(20);
myDataRepository.saveAndFlush(myData);
mav.addObject("myData", myData);
mav.addObject("template", "mydata");
mav.addObject("fragment", "mydata");
mav.setViewName("layout");
return mav;
}
}
application.properties ファイルに以下の内容を保存する。
spring.datasource.url=jdbc:hsqldb:hsql://localhost/mydata spring.datasource.username=sa spring.datasource.password= spring.datasource.driver-class-name=org.hsqldb.jdbc.JDBCDriver spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.HSQLDialect