我正在使用Netbeans IED和Java构建项目。该项目正在使用Maven,我正尝试将其连接到出现问题的sql数据库。该代码在Java中有效,但不适用于maven。
以下错误: 找不到适用于jdbc:derby:// localhost:1527 / Database
的驱动程序Java代码:
public class DatabaseTest {
public static Connection ConnectionObj = null;
public static Statement SqlStatement = null;
public static ResultSet Sqlresult = null;
public static ResultSetMetaData MetaData = null;
public static String query = "Select * from Wallet";
public static String url = "jdbc:derby://localhost:1527/Database";
public static String user = "ABM";
public static String pass = "password2";
public static void main(String[] args) {
try {
//Allows you to connect the database
ConnectionObj = DriverManager.getConnection(url, user, pass);
SqlStatement = ConnectionObj.createStatement();
Sqlresult = SqlStatement.executeQuery(query);
MetaData = Sqlresult.getMetaData();
System.out.println("Connection worked");
} catch (SQLException e) {
System.err.println("Got an exception! ");
System.err.println(e.getMessage());
}
}
}
舞会依赖:
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<version>10.14.1.0</version>
</dependency>
答案 0 :(得分:1)
您的POM文件的这一部分不正确:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
您的程序正在尝试使用JDBC连接到Derby数据库,因此您应该使用Derby JDBC驱动程序,而不是MySQL JDBC驱动程序。
将以上内容替换为以下内容:
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derbyclient</artifactId>
<version>10.14.1.0</version>
</dependency>
(使用与Derby主版本相同的版本...)
该代码在Java中有效,但不适用于Maven。
很好奇。在Java情况下,也许您可以正确设置运行时类路径。