Я пытаюсь подключиться к базе данных sql, созданной через mysql_workbench на Linux-машине. Я в настоящее время код через терминал с помощью текстовых редакторов, потому что это то, что я чувствую себя комфортно вДрайвер JDBC и путь класса terminal
Мой класс DatabaseConnection имеет следующий код, в основном с System.out.println
-х, чтобы попытаться найти причины проблемы:.
final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
final String DB_URL = "jdbc:mysql://localhost:3306/mydb";
final String user = "root";
final String pass = "pass";
Connection connection;
Statement statement;
public DatabaseConnection(){
}
public void connect(){
System.out.println("Entering method");
try {
System.out.println("Attempting to load driver");
Class.forName(JDBC_DRIVER);
System.out.println("Driver Loaded");
connection = DriverManager.getConnection(DB_URL, user, pass);
System.out.println("Connection established");
statement = connection.createStatement();
System.out.println(" statement made");
ResultSet resultSet = statement.executeQuery("show databases");
System.out.println("statement executed");
while(resultSet.next()){
System.out.println(resultSet.next());
}
System.out.println("finished printing result set");
statement.close();
} catch(ClassNotFoundException ex) {
System.out.println("Error: unable to load driver class!");
System.exit(1);
} catch (SQLException sqle) {
System.out.println("Connection Error");
sqle.getErrorCode();
}
}
}
Я также есть Test
класс, чтобы проверить это:
class Test {
public static void main(String[] args){
DatabaseConnection connection = new DatabaseConnection();
connection.connect();
}
}
в настоящее время при его запуске в терминале мои команды:
javac -cp .:/lib/mysql-connector-java-5.1.38-bin.jar Test.java
(В моей верхней папке, содержащей файлы .java, у меня есть Lib папку, содержащую мой драйвер JDBC)
Это компилируется нормально. Затем я запустить его с помощью
java -cp .:/lib/mysql-connector-java-5.1.38-bin.jar Test
И я получаю следующее сообщение об ошибке:
java -cp .:/lib/mysql-connector-java-5.1.38-bin.jar Test
Entering method
Attempting to load driver
Error: unable to load driver class!
Так выглядит он не загружается драйвер в методе Class.forName()
и не удается. Может ли кто-нибудь помочь в объяснении причин и возможных решений?
В mysql_workbench, я думаю, что база данных запущена и запущена, так как я могу запросить ее в командной строке запроса командной строки, чтобы показать базы данных и таблицы, которые в настоящее время пустые.
Возможно, попытайтесь добавить период между толстой и косой черты, например, 'java -cp.: ./ lib/...'? –
Спасибо, он подключен. Опубликуйте как ответ, и я укажу вам. Массивное спасибо! – shirafuno
Просто боковое примечание: больше не нужно использовать 'Class.forName' для загрузки JDBC-драйвера, Java автоматически загрузит драйверы в classpath. –