问题
I face a problem about connecting to H2
this is my 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>
and this is my main code
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());
}
}
}
is always show up that Class not found:org.h2.Driver
回答1:
You should set scope to runtime so that h2 driver is packaged in your war file:
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.190</version>
<scope>runtime</scope>
</dependency>
回答2:
I had the same problem with IntelliJ, it could not found org.h2.Driver. I tried several solutions from web but after simple restart of IntelliJ the problem was solved.
Hope this helps to save some time.
回答3:
Found the answer here remove the runtime scope
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
#removed this -> <scope>test</scope> #
</dependency>
来源:https://stackoverflow.com/questions/32347944/why-i-cant-get-the-org-h2-driver-i-use-maven