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

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

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

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Spring Boot

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

Q&A

解決済

4回答

10885閲覧

Spring Boot2でHSQLDBを使用しようとするとエラー

Attsu

総合スコア16

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Spring Boot

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

0グッド

0クリップ

投稿2018/04/15 16:23

Spring BootでデータベースライブラリとしてHSQLDBを使用して開発を行いたいのですが以下のような
エラーが発生するので対応に困っています。


APPLICATION FAILED TO START


Description:

Failed to bind properties under '' to com.zaxxer.hikari.HikariDataSource:

Property: driverclassname Value: org.hsqldb.jdbc.JDBCDriver Origin: "driverClassName" from property source "source" Reason: Unable to set value for property driver-class-name

Action:

Update your application's configuration

pomには以下のように組み込み済みです。
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
</dependency>

どなたかご教授いただけると幸いです。

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

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

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

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

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

euledge

2018/04/15 16:44

application.properties または application.yml に書いてあるspring.datasourceの設定を記載してください
Attsu

2018/04/15 16:47

以下のように記載しております。spring.datasource.url=jdbc:hsqldb:file:./db/testdb;shutdown=true
退会済みユーザー

退会済みユーザー

2018/04/15 22:12 編集

そこだけじゃなく 3つ以上あるはずですよ
guest

回答4

0

私の環境では使えています。

application.properties

#spring.datasource.url=jdbc:hsqldb:hsql://localhost/testdb #spring.datasource.username=sa #spring.datasource.password= spring.jpa.hibernate.ddl-auto=update

pom.xml

<dependency> <groupId>org.hsqldb</groupId> <artifactId>hsqldb</artifactId> <scope>runtime</scope> </dependency>

投稿2020/06/26 18:50

hashimoto41

総合スコア4

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

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

0

私の環境では使えています。

application.properties

#spring.datasource.url=jdbc:hsqldb:hsql://localhost/testdb #spring.datasource.username=sa #spring.datasource.password= spring.jpa.hibernate.ddl-auto=update

pom.xml

<dependency> <groupId>org.hsqldb</groupId> <artifactId>hsqldb</artifactId> <scope>runtime</scope> </dependency>

投稿2020/06/26 18:48

編集2020/06/26 18:54
hashimoto41

総合スコア4

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

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

hashimoto41

2020/06/26 18:55

すいません。回答が重複しました。
guest

0

ベストアンサー

最小限の設定は以下の通りですがこれで失敗しているならば hsqldb-*.jar が破損しています。
mvn Projectのようなので ${user.home}/.m2 (C:\Users\username.m2) を削除後 プロジェクトのアップデートを実行してください
※ jdbc:hsql: までは共通です。

application.properties

spring.datasource.url=jdbc:hsqldb:mem:test spring.datasource.username=sa spring.datasource.password= spring.datasource.driver-class-name= spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.HSQLDialect

以下は誤った回答だった

spring.datasource.driver-class-name=''

のように null じゃなく 0文字の ブランクを設定してたりしませんか?

設定しない場合

spring.datasource.driver-class-name=

とするかその行自体不要です

投稿2018/04/15 22:15

編集2018/04/16 21:55
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2018/04/15 22:25

注)spring.datasource.driver-class-name だけではなく他のpropertyも同様
Attsu

2018/04/16 16:37

ありがとうございます。試してみましたが以下のエラーが表示されます。 *************************** APPLICATION FAILED TO START *************************** Description: Failed to auto-configure a DataSource: 'spring.datasource.url' is not specified and no embedded datasource could be auto-configured. Reason: Failed to determine a suitable driver class Action: Consider the following: If you want an embedded database (H2, HSQL or Derby), please put it on the classpath. If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active). インストールが必要なのでしょうか。
guest

0

エラーメッセージに
Reason: Unable to set value for property driver-class-name
と書かれていますが、その意味の通り driver-class-nameの記載が抜けているのではないでしょうか?

spring.datasource.url=jdbc:hsqldb:file:./db/testdb;shutdown=true spring.datasource.username=ユーザー名 spring.datasource.password=パスワード spring.datasource.driver-class-name=org.hsqldb.jdbc.JDBCDriver

投稿2018/04/15 16:54

euledge

総合スコア2404

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

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

Attsu

2018/04/15 17:02

ユーザー名、パスワードとありますがJDBCドライバは特にインストールしなくてもpomで必要なライブラリ情報を記述すればタウンロードして組み込むため必要ないという認識ですがあっているでしょうか。
euledge

2018/04/15 17:22

JDBCドライバーは、POMによりインストールされますがHSQLDBに接続する際にどのクラスを用いてユーザー、パスワードに何を使用するかという接続のための情報を指定する必要があります。 下記の公式ページにはMySQLを使用した場合のapplication.propertiesの記載例があります。 https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-sql.html#boot-features-connect-to-production-database
Attsu

2018/04/15 17:51

何度も申し訳ございません。調べたところspring.datasource.url=jdbc:hsqldb://ホスト名/データベース名 spring.datasource.username=利用者名 spring.datasource.password=パスワード spring.datasource.driverClassName=com.mysql.hsqldb.Driver のように入力すればよいことは分かったのでですがホスト名、データベース名、利用者名、パスワードに何を入力すればよいのかわかりません。HSQLDBのインストールが必要というわけではありませんよね。
euledge

2018/04/15 21:43

HSQLDBには、動作するときに4つのモードがあります。 1. インメモリモード 2. スタンドアロンモード 3. サーバモード 4. Webサーバモード 1,2はプログラムに組み込み用途で使用するもので、Javaプログラムから直接アクセスします。 3,4はサーバーとして動作し複数のプログラムでアクセスが必要な場合に用います。したがって事前にサーバーとして動かす必要があります。 今回はどちらの用途で使用しますか? モードにより接続文字列の書き方が変わります。 私の書いた jdbc:hsqldb:file:./db/testdb はスタンドアロンモードでjarのあるフォルダの下の ./db フォルダにtestという名前のDBファイルができてその中にテーブルが存在します。 一方、Attsuさんの書いたjdbc:hsqldb://ホスト名/データベース名はサーバモードでホスト名はサーバーモードで動いているデータベースのあるPCのホスト名またはIPアドレスを入れます。(自分自身であれば localhost) 下記記事に動かし方は載っています。 https://qiita.com/opengl-8080/items/caaa68320e680a578ea1 また、特に指定がない場合は慣例的にusernameは sa passwordは 空白 です。
退会済みユーザー

退会済みユーザー

2018/04/15 22:34 編集

You often do not need to specify the driver-class-name, since Spring Boot can deduce it for most databases from the url. URLから推論できるから基本的に必要ありません。 これは `resource:/META-INF/services/java.sql.Driver` で読み込まれてるクラス以外を利用したい場合に必要なだけです また想定したドライバー以外を使われた場合にも必要でしょう
euledge

2018/04/15 22:47

asahina1979さん訂正ありがとうございます。毎回記載していたのですが確かに冗長ですね。勉強になりました。
Attsu

2018/04/16 17:32

以下のようにpropertiesに記載しましたがエラー発生してしまいます。。。 spring.datasource.url=jdbc:hsqldb//localhost spring.datasource.username=sa spring.datasource.password= spring.datasource.driver-class-name=org.hsqldb.JDBCDriver Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.zaxxer.hikari.HikariDataSource]: Factory method 'dataSource' threw exception; nested exception is java.lang.IllegalStateException: Cannot load driver class: org.hsqldb.JDBCDriver at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185) ~[spring-beans-5.0.4.RELEASE.jar:5.0.4.RELEASE] at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:579) ~[spring-beans-5.0.4.RELEASE.jar:5.0.4.RELEASE] ... 41 common frames omitted Caused by: java.lang.IllegalStateException: Cannot load driver class: org.hsqldb.JDBCDriver at org.springframework.util.Assert.state(Assert.java:94) ~[spring-core-5.0.4.RELEASE.jar:5.0.4.RELEASE] at org.springframework.boot.autoconfigure.jdbc.DataSourceProperties.determineDriverClassName(DataSourceProperties.java:224) ~[spring-boot-autoconfigure-2.0.0.RELEASE.jar:2.0.0.RELEASE] at org.springframework.boot.autoconfigure.jdbc.DataSourceProperties.initializeDataSourceBuilder(DataSourceProperties.java:176) ~[spring-boot-autoconfigure-2.0.0.RELEASE.jar:2.0.0.RELEASE] at org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration.createDataSource(DataSourceConfiguration.java:43) ~[spring-boot-autoconfigure-2.0.0.RELEASE.jar:2.0.0.RELEASE] at org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration$Hikari.dataSource(DataSourceConfiguration.java:81) ~[spring-boot-autoconfigure-2.0.0.RELEASE.jar:2.0.0.RELEASE] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_131] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_131] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_131] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_131] at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ~[spring-beans-5.0.4.RELEASE.jar:5.0.4.RELEASE] ... 42 common frames omitted
euledge

2018/04/16 21:22

spring.datasource.driver-class-nameに指定するのは、 最初の質問の中にエラーとして出されているように org.hsqldb.JDBCDriver ではなく org.hsqldb.jdbc.JDBCDriver ではないでしょうか?
Attsu

2018/04/17 16:48

propertyを正しく修正してもhibernate-entitymanagerでエラーが出ていたのでcoreとの依存関係が壊れているのではないかと推測し、二つを除去後、再実行したところ立ち上がりました。euledge様、asahina1979様、当方の技術不足による粗い質問にも丁寧に対応していただき本当にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問