Я работаю над проектом Java, в котором мы хотим использовать встроенную базу данных, используя JDBC для соединения и Derby в качестве базы данных.Это проект maven, который развертывается в исполняемый файл JAR.
Я включил Derby в качестве зависимости от проекта.Я использую Java 1.8, Maven 3.8.0 и Derby 10.8.3.0.
POM.xml
<!-- Derby for database connection -->
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<version>10.8.3.0</version>
</dependency>
App.java
public class App {
public static void main(String[] args) {
JOptionPane.showMessageDialog(null, "Hello World.");
SampleDB sdb = new SampleDB();
try {
sdb.connectionToDerby();
sdb.sampleDBUsabe();
} catch (SQLException sqle) {
System.out.println(sqle);
}
}
}
SampleDB.java
public class SampleDB {
private Connection conn;
public void connectionToDerby() throws SQLException {
String dbURL = "jdbc:derby:sampledb;create=true";
conn = DriverManager.getConnection(dbURL);
}
public void sampleDBUsabe() throws SQLException {
Statement stmt = conn.createStatement();
//Create Table
stmt.execute("Create Table USERS (id int primary key, name varchar(30))");
...
}
Когда я запускаю сгенерированный файл .JAR, я получаю сообщение об ошибке:
$ java -jar target/puzzle.game-0.0.1-SNAPSHOT.jar
java.sql.SQLException: No suitable driver found for jdbc:derby:sampledb;create=true
Я подозреваю, что это связано с тем, что драйвер Derby не является частьюмоего класса пути.Есть ли способ сделать это, используя файл maven или файл settings.xml, чтобы это происходило автоматически, когда пользователь запускает цель mvn install
?