H2への接続について問題が発生しました
これは私のpom.xmlです:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>.</groupId>
<artifactId>dbConnection</artifactId>
<name>Db Connection</name>
<packaging>war</packaging>
<version>0.1</version>
<dependencies>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.3.176</version>
</dependency>
</dependencies>
</project>
これは私のメインコードです
import Java.sql.*;
public class DbConnection
{
static final String DB_URL = "jdbc:h2:tcp://localhost/~/test;AUTO_SERVER=TRUE";
public static void main(String[] args) throws Exception
{
try
{
Class.forName("org.h2.Driver");
Connection conn = DriverManager.getConnection(DB_URL,"sa","");
conn.close();
}
catch(ClassNotFoundException ex)
{
System.out.println( "ERROR: Class not found: " + ex.getMessage());
}
}
}
class not found:org.h2.Driverが常に表示される
H2ドライバーがwarファイルにパッケージ化されるように、スコープをランタイムに設定する必要があります。
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.190</version>
<scope>runtime</scope>
</dependency>
IntelliJでも同じ問題が発生しましたが、見つかりませんでしたorg.h2.Driver
。 Webからいくつかの解決策を試しましたが、IntelliJを再起動するだけで問題は解決しました。
これが時間の節約に役立つことを願っています。
ここで答えが見つかりました ランタイムスコープを削除します
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
#removed this -> <scope>test</scope> #
</dependency>
私の問題はdocker-compose.yaml環境変数の「」にありました:
SPRING_DATASOURCE_DRIVER-CLASS-NAME="org.h2.Driver"
-機能しませんSPRING_DATASOURCE_DRIVER-CLASS-NAME=org.h2.Driver
-機能します