SpringのJdbcTemplateを使ってOracleにテーブル作成してみた(CREATE TABLE)

スポンサーリンク

SpringのJdbcTemplateを使ってOracleにテーブル作成してみた

SpringのJdbcTemplateを使用してテーブル作成(DDL)を実行してみます。

今回のプロジェクト構成は、以下になります。

この記事で使うバージョンは以下になります。

  • Windows 10 Home
  • Java11
  • Spring Tool Suite 4.6.2
  • Oracle 11gXE

JdbcTemplateDdlSampleApplication.java

Spring Starter Projectでプロジェクト作成した時に自動生成されるものです。

package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class JdbcTemplateDdlSampleApplication {
  public static void main(String[] args) {
    SpringApplication.run(JdbcTemplateDdlSampleApplication.class, args);
  }
}

JdbcTemplateDDL.java

12~13行目でJdbcTemplateを使用するため依存性の注入をしています。

22行目でexecuteメソッドを使用してDDLを実行します。

package com.example.demo;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class JdbcTemplateDDL {
  
  @Autowired
  JdbcTemplate jdbcTemplate;
  
  @GetMapping("/")
  public String createTableAnimal(Model model) {
    
    String sqlText  = "CREATE TABLE animal ("
                    + "animal_id CHAR(3)"
                    + ",animal_name VARCHAR2(20))";

    jdbcTemplate.execute(sqlText);
    model.addAttribute("ResultMessage", "CREATE TABLE Success!!!");
    
    return "index";
      
  }
}

Spring JdbcTemplateリファレンス

index.html

http://localhost:8888/にアクセスして処理が成功したら画面に「CREATE TABLE Success!!!」が表示されるようにします。

<!DOCTYPE html>
<html xmlns="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="/css/style.css">
<title>JdbcTemplate DDL Sample</title>
</head>
<body>
    <h1>DDL sample</h1>	
    <p th:text="${ResultMessage}"></p>
</body>
</html>

application.properties

ユーザネームとパスワードはご自身のを設定してください。ポートは空いてるものなら何でもいいです。自分の場合、デフォルトの8080を別アプリに割り当ててたので8888にしてます。

server.port=8888
spring.datasource.url=jdbc:oracle:thin:@localhost:1521:XE
spring.datasource.username={username}
spring.datasource.password={password}
spring.datasource.driverClassName=oracle.jdbc.OracleDriver

pom.xml

今回のプロジェクトのpomは、以下になります。

<?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.4.3</version>
    <relativePath/> <!-- lookup parent from repository -->
  </parent>
  <groupId>com.example</groupId>
  <artifactId>SpringTest</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>JdbcTemplateDDLSample</name>
  <description>Demo project for Spring Boot</description>
  <properties>
    <java.version>11</java.version>
  </properties>
  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-jdbc</artifactId>
    </dependency>
    <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-devtools</artifactId>
      <scope>runtime</scope>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>com.oracle.database.jdbc</groupId>
      <artifactId>ojdbc8</artifactId>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>

</project>

コメント

タイトルとURLをコピーしました