2013-05-30 8 views
0

У меня проблема с использованием sqlite с Java. Мое приложение при первом запуске создает папку в папке, где находится файл jar, и в этой папке помещается мой sqlite db; проблема в том, что когда я запускаю свой проект из Netbeans, все работает нормально, без каких-либо проблем, но когда я создаю банку и пытаюсь сделать это, приложение создает папку, но не внутреннюю часть db, а программа вылетает из строя. Зачем? Вот код, из которого я создаю БД и его папку:Почему моя база данных sqlite не создана?

public Db() 
{ 
    if (!checker()) 
    { 
     File f = new File("dbecprp"); 
     f.mkdir(); 
     try { 
      String url = "jdbc:sqlite:dbecprp/dbecprp.db"; 
      Class.forName("org.sqlite.JDBC"); 
      conn = (Connection)DriverManager.getConnection(url); 
      s = conn.createStatement(); 
      s.executeUpdate("CREATE TABLE Utente (idUtente integer primary key autoincrement, nome varchar(45) not null, email varchar(45) not null, password varchar(15) not null);"); 
      s.executeUpdate("CREATE TABLE Prodotto (idProdotto integer primary key autoincrement, tipologia varchar(3) not null, titolo varchar(45) not null, creatore varchar(45) not null, prezzo float not null, descrizione varchar(45), qta_magazzino int(3) not null);"); 
      s.executeUpdate("CREATE TABLE Ordine (idOrdine integer primary key autoincrement, qta_prodotto int(3) not null, totale_ordine float not null, data_ordine long not null, nome_consegna varchar(45) not null, indirizzo_spedizione varchar(150) not null, idUtente int not null, idProdotto int not null, FOREIGN KEY (idUtente) REFERENCES Utente(idUtente), FOREIGN KEY (idProdotto) REFERENCES Prodotto(idProdotto));"); 
     } catch (ClassNotFoundException | SQLException ex) { 
      JOptionPane.showMessageDialog(null, "Db creation failed. Program will terminate."); 
      System.exit(1); 
     } 
     filler(); 
    } 
} 

public boolean checker() 
{ 
    File f = new File("dbecprp"); 
    return f.isDirectory(); 
} 

Вот чистый выход & сборки:

ant -f C:\\Users\\paolo2\\Documents\\NetBeansProjects\\Server clean jar 
init: 
deps-clean: 
Updating property file: C:\Users\paolo2\Documents\NetBeansProjects\Server\build\built-clean.properties 
Deleting directory C:\Users\paolo2\Documents\NetBeansProjects\Server\build 
clean: 
init: 
deps-jar: 
Created dir: C:\Users\paolo2\Documents\NetBeansProjects\Server\build 
Updating property file: C:\Users\paolo2\Documents\NetBeansProjects\Server\build\built-jar.properties 
Created dir: C:\Users\paolo2\Documents\NetBeansProjects\Server\build\classes 
Created dir: C:\Users\paolo2\Documents\NetBeansProjects\Server\build\empty 
Created dir: C:\Users\paolo2\Documents\NetBeansProjects\Server\build\generated-sources\ap-source-output 
Compiling 4 source files to C:\Users\paolo2\Documents\NetBeansProjects\Server\build\classes 
Note: Some input files use unchecked or unsafe operations. 
Note: Recompile with -Xlint:unchecked for details. 
compile: 
Created dir: C:\Users\paolo2\Documents\NetBeansProjects\Server\dist 
Copying 1 file to C:\Users\paolo2\Documents\NetBeansProjects\Server\build 
Not copying library C:\Users\paolo2\Documents\NetBeansProjects\Server\dist\lib\sqlite-jdbc-3.7.2.jar , it can't be read. 
Copy libraries to C:\Users\paolo2\Documents\NetBeansProjects\Server\dist\lib. 
Building jar: C:\Users\paolo2\Documents\NetBeansProjects\Server\dist\Server.jar 
To run this application from the command line without Ant, try: 
java -jar "C:\Users\paolo2\Documents\NetBeansProjects\Server\dist\Server.jar" 
jar: 
BUILD SUCCESSFUL (total time: 7 seconds) 

Может быть, проблема заключается в SQLite-JDBC-3.7.2.jar, что не включен ... Раньше я добавлял его вручную, но, возможно, из-за этого он не работает.

+1

В чем исключение, которое вас не волнует? – Kai

+0

Если каталог уже существует, код даже не попытается создать базу данных. Это предназначено? – Kai

+0

Да, но каталог не существует при первом запуске приложения; он сделан для того, чтобы проверять при каждом запуске, если первый запуск или нет. – tenik

ответ

0

база данных с именем dbecprp.db обыкновение быть автоматически создавать

и нужно поместить этот dbecprp.db в папке dbecprp внутри директории проекта

и так далее ...

Смежные вопросы