Я использую UCanAccess для подключения моего приложения JavaFX к базе данных на общем диске. В первый раз, когда я открываю приложение и запускаю некоторый запрос, начальное подключение к базе данных занимает около 25 секунд.
Я поставил несколько временных меток и обнаружил, что основной причиной является метод, описанный ниже, в частности, выполнение первого блока try catch занимает 25 секунд. После этого каждый раз, когда я вызываю этот метод, все выполняется в течение доли секунды. Любые предложения о том, как это можно решить?
public void openDB(){
// Load MS access driver class
try {
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
System.out.println("There was an error while connecting to the database");
e.printStackTrace();
}
String databasePath ="jdbc:ucanaccess:////server\\MyDB.accdb";
try {
this.connection = DriverManager.getConnection(databasePath, "", "");
this.connection.setAutoCommit(false);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
this.statement = connection.createStatement();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Class.forName(...)
занимает 25 секунд? - person James_D   schedule 13.08.2015Class.forName()
. Часто это не требуется, если вы не используете довольно старый JDK. - person Gord Thompson   schedule 13.08.2015