質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Gradle

Gradleは、ビルド自動化ツールです。 ソフトウェアパッケージやドキュメント、 または実際に何か他の種類のプロジェクトの構築、テスト、公開、展開などを自動化が出来ます

Apache Maven

Apache Mavenは、ソフトウェアプロジェクトの管理ツールです。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

1回答

1579閲覧

Mavenのチュートリアルと同じ内容をGradleで行うには?

Sean2014

総合スコア59

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Gradle

Gradleは、ビルド自動化ツールです。 ソフトウェアパッケージやドキュメント、 または実際に何か他の種類のプロジェクトの構築、テスト、公開、展開などを自動化が出来ます

Apache Maven

Apache Mavenは、ソフトウェアプロジェクトの管理ツールです。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

0グッド

0クリップ

投稿2020/04/25 14:21

現在、Java Spring BootでCRUDベースの簡単な練習アプリを作っていて、CRUDの基本的な部分(投稿のタイトル、日付、テキストによる説明などのデータを新規投稿、編集、削除するなど)は実装できたので次は投稿フォームの中に画像のアップロード機能も入れたいと思っています。(使用OSはWindows 10)

参考にしているのは下記URLの
https://www.callicoder.com/spring-boot-file-upload-download-jpa-hibernate-mysql-database-example/
ページなのですが、ここで説明されている手順で気になる事があります。

#JPA and MySQL dependencies
の項目を見てみると、

“Since we’ll be storing files in MySQL database, we’ll need JPA and MySQL dependencies along with Web dependency. So make sure that you pom file contains the following dependencies”(MySQLデータベースでファイルを保存するので、JPAとMySQLのDependencyとWeb dependencyが必要になります。なので、Pomファイルに下記のDependencyが含まれるようにしてください)

と書かれています。

僕のプロジェクトではDependencyの管理はMavenではなくGradleで行っているのですが、例えば

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

などの、上記URLのチュートリアルページのMaven版Dependency説明部分をGradle版に相当する書き方で記述を僕のプロジェクトのGradleのファイルに追記しておけば、問題なく動くようになるでしょうか?

また、同じページのそのすぐ下の項目である
#Configuring the Database and Multipart File properties
には、application.properties fileにどのような記述が必要かが書かれているのですが、次のように自分のプロジェクトのConfigurationのファイルに追記したらコンフリクトを起こしてしまいました。(##で始まる## Spring DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties以降の記述がチュートリアルからコピペしたもの、それより上が元々あった記述です)

spring: datasource: url: jdbc:h2:mem:test driverClassName: org.h2.Driver username: sa password: h2.console.enabled: true ## Spring DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties) spring.datasource.url= jdbc:mysql://localhost:3306/file_demo?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false spring.datasource.username= root spring.datasource.password= callicoder ## Hibernate Properties # The SQL dialect makes Hibernate generate better SQL for the chosen database spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect spring.jpa.hibernate.ddl-auto = update ## Hibernate Logging logging.level.org.hibernate.SQL= DEBUG ## MULTIPART (MultipartProperties) # Enable multipart uploads spring.servlet.multipart.enabled=true # Threshold after which files are written to disk. spring.servlet.multipart.file-size-threshold=2KB # Max file size. spring.servlet.multipart.max-file-size=200MB # Max Request Size spring.servlet.multipart.max-request-size=215MB

今のまま進めていると、このチュートリアルのガイドに沿って自分のプロジェクトにEntityを新しく1つ追加した時に、例えば

package com.example.demo.model; import org.hibernate.annotations.GenericGenerator; import javax.persistence.*; @Entity @Table(name = "files") public class DBFile { …

の辺りで

The import org.hibernate.annotations cannot be resolved Entity cannot be resolved to a type

などのエラーがたくさん出てきてしまいます。

自分としてはDependencyやConfigurationの所で設定が上手く噛み合っていないのが原因なのかなと思っていますが、Gradleのままコンフリクトを解消して、このようなMavenベースのチュートリアルの機能の一部(今回の場合Single file upload)を自分のプロジェクトに組み込むのはできるのでしょうか?

それとも、MavenのDependencyで同じ内容のものを作り直した方がよいでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

spring-data-jpa + mysql

で 'EXPLOE CTRL + SPACE' を押して記述を確認しましょう

投稿2020/04/25 14:43

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Sean2014

2020/04/25 15:03

回答ありがとうございます! すみません、ちょっと確認させてください。Spring InitializrのページでAdd Dependenciesで追加したいDependencyを追加して、EXPLOE CTRL + SPACEを押せばチュートリアルに書かれているMavenでのDependencyのGradle版の記述が確認できる所まではわかったのですが、application.properties fileの記述に関してはどうでしょうか?例えばspring.datasource.urlの所が、元々あったjdbc:h2:mem:testとチュートリアルから持ってきたjdbc:mysql://localhost:3306/file_demo?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=falseがコンフリクトを起こすのではないかと思うのですが、こういう場合はどちらの記述を優先的に残すべきとかはありますでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問