Я хочу, чтобы пользователь мог выбрать базу данных для подключения. Доступная пользователю информация находится в разных базах данных sqLite. Я мог бы жестко закодировать URL для конкретной базы данных, но я должен был бы предоставить полные программы для каждого небольшого модуля. Подача URL из пользовательского ввода в SqliteConnection () завершается неудачно на первой итерации из-за отложенной обработки.
Я хочу предоставить пользователям какой-то способ напрямую перейти к нужной программе для БД, к которой он / она должен получить доступ. Пропускная способность была бы огромной с участием нескольких десятков БД. Поэтому я создал начальный экран, который позволяет пользователю выбрать название темы и номер урока. Эта информация превращается в URL и отправляется в класс, который обрабатывает подключение к нужной БД. Но, как было изначально написано, была предпринята попытка подключиться к БД без указания правильного имени, поскольку предоставленная пользователем информация была пропущена. Необходимо повторно запустить процесс подключения, который теперь работает, поскольку ранее пропущенный материал был правильно оценен.
Итак, пользователь видит что-то вроде этого:
Пользователь: Load DB Physics3
Ответ компьютера: нет такой БД.
Пользователь: Load DB Physics3
Компьютер: соединение с БД Physics3 успешно.
Вот класс, который я поместил. Есть ли лучший способ, как сказать "не пропустите копирование URL-адреса в URL-адрес в следующем коде?
import java.sql.*;
import javax.swing.*;
import java.sql.Connection;
public class SqliteConnection {
static String renameDB = "";
public static void simpleMessage(final String DBname) {
renameDB = DBname;
/*KLUDGE*/ dbConnector(); //Force it to run dbConnector a second time.
} //For some reason, it does not calculate the value of
//"renameDB" to use making the connection. It does the
//connection housekeeping below, tries and fails to
//connect to a DB. and then does he stuff above, So
//I have to force it to to the seconde block again.
//Then it is o.k.
public static Connection dbConnector(){
Connection conn = null;
try {
Class.forName("org.sqlite.JDBC");
conn = DriverManager.getConnection(renameDB);
return conn;
}catch (Exception e)
{
e.printStackTrace();
return null;
}
}
}
//To demo this class just modify String renameDB to a URL of your
chosing.
Этот код, включая kludge, попадает в правильную БД. Это просто кажется неуместным способом достижения моей цели. К счастью, пользователь избавлен от уродства.