[英]Why isn't my sqlite database created?
我在将sqlite与Java结合使用时遇到问题。 我的应用程序在首次启动时,在jar文件所在的文件夹中创建了一个文件夹,并将该文件夹放置在我的sqlite数据库中。 问题是,当我从Netbeans运行我的项目时,一切正常,没有任何问题,但是当我构建jar并尝试从中进行操作时,应用程序创建了文件夹,但内部没有db,程序崩溃了。 为什么? 这是我从中创建数据库及其文件夹的代码:
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();
}
这是clean&build输出:
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的问题……我曾经手动添加它,但由于它,它可能不起作用。
名为dbecprp.db的数据库将不会自动创建
ü需要地方dbecprp.db在dbecprp文件夹中的项目目录内
等等...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.