Java 为便携式数据库应用程序创建数据库jdbc Derby
类创建文件夹和derby数据库Java 为便携式数据库应用程序创建数据库jdbc Derby,java,database,jdbc,derby,Java,Database,Jdbc,Derby,类创建文件夹和derby数据库 package Utility_Package; import java.io.File; import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException;
package Utility_Package;
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
public class systemSetup {
String finalDirectory;
String dirName = "Car_washing_System";
Connection con = null;
Statement st = null;
public String url;
// method to create Database in the Folder
public void createDB(){
try {
System.setProperty("derby.system.home",
dirName+"/dbs");
try {
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
} catch (ClassNotFoundException ex) {
Logger.getLogger(systemSetup.class.getName()).log(Level.SEVERE, null, ex);
}
con = DriverManager.getConnection(url);
st = con.createStatement();
st.executeUpdate("CREATE TABLE CARS(ID INT PRIMARY KEY,"
+ "NAME VARCHAR(30), PRICE INT)");
st.executeUpdate("INSERT INTO CARS VALUES(1, 'Audi', 52642)");
DriverManager.getConnection("jdbc:derby:;shutdown=true");
} catch (SQLException ex) {
Logger lgr = Logger.getLogger(systemSetup.class.getName());
if (((ex.getErrorCode() == 50000)
&& ("XJ015".equals(ex.getSQLState())))) {
lgr.log(Level.INFO, "Derby shut down normally", ex);
} else {
lgr.log(Level.SEVERE, ex.getMessage(), ex);
}
} finally {
try {
if (st != null) {
st.close();
}
if (con != null) {
con.close();
}
} catch (SQLException ex) {
Logger lgr = Logger.getLogger(systemSetup.class.getName());
lgr.log(Level.WARNING, ex.getMessage(), ex);
}
}
}
// Method to create the folder on the mac if does not exist
public File createUserDirectory(){
// Creating the directories for the java desktop application
final File homeDir = new File(System.getProperty("user.home"));
final File dir = new File(homeDir, dirName);
if (!dir.exists() && !dir.mkdirs()) {
finalDirectory = dir.toString();
url = "jdbc:derby:"+finalDirectory+ "systemDb;user=USER";
// verify if folder has been created and then check that url is not null
if(!url.isEmpty()){
createDB();
} else {createUserDirectory();}
}return dir;
}
}
--输出
运行:
构建成功总时间:2秒
问题是文件编译,文件夹创建没有问题,但文件夹下没有创建数据库,请提供帮助是否创建了derby.log文件?Bryan-是的,derby.log是在我的项目目录下创建的,但不是在程序创建的目录下。数据库也是在与derby.log相同的位置创建的。您的项目目录?Derby引擎通常在它认为是其主目录的目录中创建Derby.log,因此我想知道您控制Derby.system.home属性的尝试是否无效。您是否尝试过使用-Dderby.system.home=/your/dbs运行您的程序,以查看是否效果更好?