我使用NetBeans 8进行了一个项目,其中必须连接到mysql数据库并在表格中显示内容。 当我使用IDE时,连接正常!但是当我清理并构建以创建可执行jar时,我的程序无法连接到数据库... 有人可以帮我吗? 谢谢!
那是我正在使用的代码:
@FXML
private void loadDB() {
//cleaning all fields from table View and removing previous elements from studentList before show new content;
tableView.getItems().clear();
studentList.removeAll();
String stg = dataBaseField.getText();
//Expected string format:
//jdbc:mysql://mymysql.senecacollege.ca/eden_burton?user=jac444_183a01&password=eqXE@4464
try {
Class.forName("com.mysql.cj.jdbc.Driver");
} catch (ClassNotFoundException e) {
System.out.println("Error loading the driver" + e);
}
try {
//connecting to the database
Connection conexao = DriverManager.getConnection(dataBaseField.getText());
//creating a statement and query to be executed
Statement myStmt = conexao.createStatement();
ResultSet result = myStmt.executeQuery("select * from Students");
//look at the result set
while (result.next()) {
Student student_ = new Student(result.getInt("id"), result.getString("name"), result.getString("course"), result.getInt("grade"));
studentList.addNaLista(student_);
tableView.setItems(getStudent(studentList.getList()));
}
myStmt.close();//closing statement
result.close();//closing results
conexao.close();//closing connection
} //if a connection could not be set.
catch (SQLException exc) {
alert("CONNECTION ERROR!", "Please verify your connection string.", "String should be in the following format: " + "\n\njdbc:mysql://mymysql.senecacollege.ca/DATABASENAME?user=USERNAME&password=PASSWORD");
}
}
答案 0 :(得分:0)
直接在问题的评论中进行讨论:
问题是运行可执行jar时,您在JVM的类路径中缺少了MySQL JDBC jar。它可以在eclipse之外运行,因为在将依赖项添加到项目并运行其一个类文件时,IDE会正确创建类路径。
如果要从项目中创建jar,则eclipse不会向其添加依赖项。您需要自己处理。现在,您有两个选择:
编辑:
由于您正在使用Netbeans,因此Netbeans似乎没有eclipse那样的Option。因此,您对我的选择2
感到困惑答案 1 :(得分:0)
假设您正在Netbeans中使用基于Ant的项目,则可以配置项目,以便NetBeans将创建可运行的jar文件并将所有相关的库复制到项目的dist
文件夹中。
为此,请启用项目属性的“打包”部分(在“生成”下)中的“复制依赖库”复选框。
(屏幕快照是使用NetBeans 10拍摄的,但旧版本具有完全相同的选项)
确保您在项目的Run
部分中定义了一个Main Class。
完成此操作并构建项目后,dist
文件夹将包含MyApp.jar
和子目录lib
,其中将包含您添加到项目中的所有库。 MyApp.jar
将包含一个MANIFEST.MF
,其中包括您的应用程序jar和所有相关的库(位于lib
目录中),以便您可以使用java -jar MyApp.jar