6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

SpringでMySQLを利用してみる(Part 1: プロジェクトの作成)

Last updated at Posted at 2019-01-09

最近Springの学習を始め、ようやくデータベースの接続に成功したので、作成したプロジェクトを共有したいと思います。データベースに接続する方法としては、Spring Data JPAを利用する方法とSpring JDBCを利用する方法がありますが、ここではSpring Data JPAを利用します。

参考リンク:
https://spring.io/guides/gs/accessing-data-mysql/
https://spring.io/guides/gs/accessing-data-jpa/
https://tech.pjin.jp/blog/2016/05/30/springframework5/

##プロジェクト紹介

このプロジェクトでは、フォームに入力されたユーザの名前とメールアドレスをデータベースに登録します。ホーム画面で、データを入力してAddボタンを押すと…

home.png

saved.png

データが保存されます。ホーム画面に戻り、一覧を表示をクリックすることで、データベースに登録されているユーザの一覧を表示することもできます。

all.png

このパート1では、プロジェクトの作成・設定について投稿したいと思います。

##プロジェクトの作成
使用したIDEはEclipse。まず、新規Maven Projectを作成します。maven-archetype-archetypeを選択し、任意のGroup ID, Artifact ID, Package名を指定します。また、データベースも作成しておきます。ここではデータベース名をspring_sampleとします。

##フォルダー構造
プロジェクトの構造は以下の通りです。
directory.png

まずapplication.propertiesを作成し、以下の内容を追加します。

application.properties


spring.mvc.view.prefix: /WEB-INF/jsp/
spring.mvc.view.suffix: .jsp

spring.jpa.hibernate.ddl-auto=create
spring.datasource.url=jdbc:mysql://localhost:3306/spring_sample
spring.datasource.username=root
spring.datasource.password=

初めてプロジェクトを実行する場合はデータベース(テーブル)を作成する必要があるので、ddl-autoをcreateに設定します。二回目以降はすでに作成されているので、ddl-autoをnoneに設定し、データが削除されないようにします。


spring.jpa.hibernate.ddl-auto=none

次にpom.xmlを編集し、以下のようにdependencyを追加します。

pom.xml

<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 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.example</groupId>
  <artifactId>gs-mysql-example</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>Archetype - gs-mysql-example</name>
  <url>http://maven.apache.org</url>

  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.5.RELEASE</version>
  </parent>

  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-tomcat</artifactId>
      <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.tomcat.embed</groupId>
      <artifactId>tomcat-embed-jasper</artifactId>
      <scope>provided</scope>
    </dependency>

    <!-- JPA Data (We are going to use Repositories, Entities, Hibernate, 
      etc...) -->

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    
    <dependency>
      <groupId>org.hibernate.javax.persistence</groupId>
      <artifactId>hibernate-jpa-2.1-api</artifactId>
    </dependency>

    <!-- Use MySQL Connector-J -->

    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>
    
    <!-- Spring Form -->
    
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
    </dependency>

    <dependency>
      <groupId>org.springframework.security</groupId>
      <artifactId>spring-security-taglibs</artifactId>
    </dependency>
  </dependencies>

  <properties>
    <java.version>1.8</java.version>
  </properties>

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

これでプロジェクトのセットアップは完了です。次回はデータを保持するためのクラスを作成していきます。

6
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?