Как обнаруживать, что не существует база данных SQLite, и что я бросил ошибку?

У меня есть проблема после того, как стараюсь тестировать связь в основание типа SQLite, мой метод связи это у меня есть в так называемом классе nwSQLiteCnct который является следующим:

public void connect(String url)
    {
    try 
    {
        connect = DriverManager.getConnection("jdbc:sqlite:" + url);
        if (connect!=null) 
        {
            System.out.println("Conectado");
        }
    }
    catch (SQLException ex) 
    {
        System.err.println("No se ha podido conectar a la base de datos\n"+ex.getMessage());
    }
    }

Параметр url connect я перемещаю это его с переменной, которую я приношу из одного Propertie который я читаю следующего способа:

try
    {
        //Obtiene el archivo propertie
        arch = getClass().getResourceAsStream("/data/dbprop.properties");
        //Crea una nueva instancia del objeto Propertie prp
        prp = new Properties();
        //Carga el archivo arch en el nuevo propertie
        prp.load(arch);
        //Asigna la direccion de la BD guardada en el propertie
        DB = prp.getProperty("db");
        //Instancia la clase conexion
        cnct = new nwSQLiteCnct();
        //Se conecta
        cnct.connect(DB);
        if(cnct != null)
        {
            JOptionPane.showMessageDialog(null, "La conexion esta funcionando correctamente!", "Correcto!",
            JOptionPane.INFORMATION_MESSAGE);
        }
        else
        {
            JOptionPane.showMessageDialog(null, "No se encuentra el archivo correcto de conexion!", "Error!",
            JOptionPane.ERROR_MESSAGE);
        }
    }
    catch(IOException a)
    {
       System.err.println( a.getClass().getName() + ": " + a.getMessage() );
    }

Это все то, что содержит Propertie dbprop.properties:

db = /Users/soporte02/Desktop/AccessPROTimeNet.db

Моя проблема происходит, в котором, если база данных не в определенном адресе, создается другой равный файл, хотя без какой-либо неразборчивой информации, он следовательно всегда бросал, что эта база данных в правильном адресе, хотя он не ответит в момент делания консультаций. Не, если кто-то мог помогать мне или говорить мне, делаю ли я это правильным способом или есть что-то, в чем я ошибаюсь.

0
задан 23.06.2016, 22:35
1 ответ

База данных sqlite, - в конце счетов, архив fГ-sico на диске. То, что ты нуждаешься в том, чтобы сделать, состоит в том, чтобы санкционировать, что архив существовал, чтобы открывать ее conexiГіn, иначе бросать ошибку. Основанный на тебе cГіdigo, это harГ - в работу:

DB = prp.getProperty("db");
File baseDeDatosSQLite = new File(DB);
if (!baseDeDatosSQLite.exists()) {
    //puedes lanzar otra excepción y un mensaje más apropiado
    throw new IOException("Base de datos no existe.");
}
cnct = new nwSQLiteCnct();
//Se conecta
cnct.connect(DB);
1
ответ дан 24.11.2019, 14:05
  • 1
    Уже hab и # 237; в попробованный этот м и # 233; совсем, проблема состоит в том, что, если я двигаю файл, они в любом случае создают равный файл, хотя у него нет ning и # 250; n информация и он это берет, как который, если он существует. – Kevin M. 23.06.2016, 22:46
  • 2
    Ты должен размещать validaci и # 243; n перед инициализировать conexi и # 243; n. –  23.06.2016, 22:49
  • 3
    Я заношу в список, если я функционирую, спасибо. – Kevin M. 23.06.2016, 23:25

Теги

Похожие вопросы